C#调用c编写的dll时,返回一个结构指针,我应如何写.net wrapper

bdbox@qq.com 2009-04-29 11:07:02
C#调用c编写的dll时,返回一个结构指针,我应如何写.net wrapper?
如:对于如下方法(C语言中)
TestFile* file_open( const char * filename )

其中,
typedef struct TestFile{
unsigned user_id;
void* user_ptr;
unsigned mesh_version;
unsigned keyf_revision;
char name[12+1];
float master_scale;
} TestFile;

如果C#中,public static extern IntPtr file_open(string path);

如何将返回的intptr转换(解析)成C#中对应的结构或类?这样在C#中就可以直接使用类或结构,而不使用指针了。
谢谢
...全文
76 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
RFEZGC 2009-04-29
  • 打赏
  • 举报
回复
typedef struct TestFile{
unsigned user_id;
void* user_ptr;
unsigned mesh_version;
unsigned keyf_revision;
char name[12+1];
float master_scale;
} TestFile
[STRUCTlAYOUT(Layoutkind.s.....,pack=1,charset=charset.ascii)]
public struct TestFile{
public byte user_id;
pu blic intptr user_ptr;
public ???unsigned???类型;
public ???同上;
[marshalas(bystr...,sizeconst=13)]
public string name;
public float master_scale;
};
兔子-顾问 2009-04-29
  • 打赏
  • 举报
回复
public class TestFile
{
byte user_id;
object user_ptr;
byte mesh_version;
byte keyf_revision;
char[] name = new char[13];
float master_scale;
}

//声明成这样试试。
TestFile file_open(string filename)

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧