首页新闻找找看学习计划

c++ c# imported

0
悬赏园豆:20 [待解决问题]

c++定义:

typedef struct _GLYMODE{
unsigned int dwLockStatus;
unsigned int dwModeStatus;
}GLYMODE, *LPGLYMODE;

int GLY_DeGetMode(GLYHANDLE h, LPGLYMODE* lppDEModeData);

c# 转换:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public struct GlyMode
{
   public uint dwLockStatus;
   public uint dwModeStatus;
}

[DllImport(@"libglyde.dll", EntryPoint = "GLY_DeGetMode", CallingConvention = CallingConvention.Cdecl)]
public static extern int GLY_DeGetMode(int handle, IntPtr glyDeModeData);

我的问题是: 在方法import的时,方法参数我转换的对吗?还是写成:public static extern int GLY_DeGetMode(int handle, ref GlyMode glyDeModeData);

请高手帮忙,谢谢

jerry liu的主页 jerry liu | 初学一级 | 园豆:50
提问于:2014-01-26 16:49
< >
分享
所有回答(3)
0

http://www.cnblogs.com/ausoldier/archive/2007/12/07/986141.html

推荐一篇文章,希望能帮到你

wolfy | 园豆:2636 (老鸟四级) | 2014-01-26 17:15
0

问题已经解决

 

[DllImport(@"libglyde.dll", EntryPoint = "GLY_DeGetMode", CallingConvention = CallingConvention.Cdecl)]
public static extern int GLY_DeGetMode(int handle, ref IntPtr glyDeModeData);

jerry liu | 园豆:50 (初学一级) | 2014-01-26 17:29
0

可以使用工具自动生成对非托管动态库函数与结构的声明,搜索工具CLRInsideOut。

告诉 | 园豆:285 (菜鸟二级) | 2014-01-27 16:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册