C++生成DLL给C#调用
1、添加C++动态链接库(DLL)
2、添加头文件 test.h
1 2 3 4 5 6 7 8 9 10 | #ifndef TEST_H #define TEST_H // 添加要在此处预编译的标头 #include "framework.h" #endif //TEST_H extern "C" _declspec( dllexport ) int GetTxtStr( char * in_str, char * out_str); |
2、添加cpp文件 test.cpp
int GetTextStr(char* in_str,char* out_str){ char buff[1024]; memset(buff, 0, sizeof(buff)); char *test = "test" strcpy(instr,buff); strcat(buff,test2); strcpy(out_str,buff); return TRUE }
3、在C#项目里如下
1 2 3 4 5 6 7 8 9 10 11 12 | [DllImport( "test.dll" , EntryPoint = "GetTextStr" , CallingConvention = CallingConvention.Cdecl)] static extern int GetTextStr( string in_str, [MarshalAs(UnmanagedType.LPStr)] StringBuilder out_str); static void Main( string [] args) { StringBuilder str = StringBuilder(); GetTextStr( "123456" , str); Console.WriteLine(str); } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2021-11-05 Gradle常用的命令