需求
1.Qt已经开发了应用,封装成Qt库,以供C#调用。
2.Qt的tcp客户端封装,以供C#调用,双向传递数据。
原理
1.使用QtCreator编译msvc版本的Qt库;
2.使用VS2017开发C#程序引入Qt库;
3.双向传递指针、传递数组;
相关博客
《项目实战:Qt编译Qt库以及使用C#调用Qt库,并实现C#集成Qt的tcp客户端》
《Qt实用技巧:VS2017编写纯C库以及使用Qt调用C库方法》
《关于 C#调用C库Dll,有回调函数时,只执行一次回调函数就直接挂掉 的解决方法》
《关于 C#调用一个C/C++dll库运行时实现多个应用(静态变量区分) 的解决方法》
《关于 C#调用c库,将C#的byte[]传入C库的方法和将C库的char*向上传入C#的回调函数byte[] 的方法》
Demo
以下是集成客户端的演示:
工程模板
cSharpCallQtDllDemo_基础模板_v1.0.0.rar
cSharpCallQtDllDemo_定制连接服务器_传输数据.rar
入坑
入坑一:错误“未加载ucrtbase.pdb"
错误
解决
需要对Qt的库进行初始化操作并且到用windeployqt导入库先关的依赖性项。