C#调用C++动态库的函数,要返回结构体类型的列表怎么做比较好? C#调用C++动态库的函数,要返回结构体类型的列表怎么做比较好? 自己用C++封装了一个支持跨平台和多种数据库操作的库,现在想在C#调用这个库实现类似的功能。比如说列本机的数据源列表、列出所有表名、存储过程名或函数名、字段信息等,这些都是一个结构体类型的列表,怎么返回给C#使用。希望有高人可以指点一下 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 结构体数组试过了,走不通,从C#传递给C++的DLL是可以,但作为返回值返回给C#还搞不清楚 把结果作为传出参数返回,c++中参数定义成void**,把数组的首地址赋给*参数,c#中参数定义为ref void*,把*参数转换为相应的结构数组 在C++里分配空间C#里使用好像会有谁来释放那块内存的问题。比较稳妥的是先预先得知结果里会有多少个元素,在c#里分配足够的内存,再把数组地址传递给C++函数,在此填充结构数组。 为什么要作为返回值呢?内存管理的有效方法就是一般谁分配,谁负责释放(结构化编程的要点之一是职责清晰)。返回结构列表就意味着C++负责分配,而c#方负责释放。为什么不采用C#传入一个数组,c++进行填充的方式来返回呢?extern static bool GetDataSources( MyDataInfo[] buffer, ref int length ); 从TXT读取并存入到DataTable 请教:如何断开已经连接的IP? 正则排列后写入数据库的问题 C#怎么制作绝对透明控件? 编辑控件中的一个小问题.高手指点指点 网络游戏的服务端 有人用C#做出过吗? 为什么True DB Grid7控件在C#中应用,KeyPress,KeyDown不起作用? 做个无限极分类怎么能生成组织结构图?C# ASP.NET 关于WEB的编程。请高手指教!! 高分悬赏求大神们帮忙 在C#中可否用循环的方法写出算24点的程序 关于DllImportAttribute
c#中参数定义为ref void*,把*参数转换为相应的结构数组
返回结构列表就意味着C++负责分配,而c#方负责释放。为什么不采用C#传入一个数组,c++进行填充的方式来返回呢?extern static bool GetDataSources( MyDataInfo[] buffer, ref int length );