C#调用c++dll中 函数带指针参数方法

c++代码片段:BOOLGetLineAt(intnIndex,CHAR*name,int&vertexCount);C#中如何写呢?[DllImport("GDZYSt... c++ 代码片段:
BOOL GetLineAt(int nIndex,CHAR* name,int &vertexCount);
C# 中如何写呢 ?
[DllImport("GDZYStar.dll")]
public static extern bool GetPointAtx(int nIndex,CHAR* name,int &vertexCount); CHAR* name,int &vertexCount这两个参数怎么转换啊
展开
 我来答
头奖彩票网
推荐于2017-09-18 · TA获得超过368个赞
知道小有建树答主
回答量:237
采纳率:0%
帮助的人:106万
展开全部
CHAR* 可以先实例化一个StringBuilder然后可以传给char*类型
关于其他的请参考msdn中的c++与c#的类型转换
对应关系如下:
C++ ---- C#
传入的char* ----string
传出的char* ---- StringBuilder(预分配空间)
short ----short
char ---- byte
char[n] ---- fixed byte[n]
结构指针 ----结构指针
函数指针 ---- 委托
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
叶早早回扉0
推荐于2017-09-23 · TA获得超过2.5万个赞
知道大有可为答主
回答量:5625
采纳率:92%
帮助的人:518万
展开全部
CHAR* 可以先实例化一个StringBuilder然后可以传给char*类型
关于其他的请参考msdn中的c++与c#的类型转换
对应关系如下:
C++ ---- C#
传入的char* ----string
传出的char* ---- StringBuilder(预分配空间)
short ----short
char ---- byte
char[n] ---- fixed byte[n]
结构指针 ----结构指针
函数指针 ---- 委托
里面涉及到函数指针,在C#里面用委托替代,总的代码如下:

delegate int pfunc(void* dst,void* src,int nSize);
unsafe public struct MyStruct
{
public Byte* pMemory;//也可以用unsinged int替代(uint*)
public pfunc myfunc;//这里用委托替代函数指针
public char[] rd;//声明的时候不能指定大小,可以在new的时候指定大小
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式