我得到了一个DLL(“InfoLookup.dll”),它在内部分配结构并从查找函数返回指向它们的指针。该结构包含字符串指针:在C#中,如何调用一个返回包含字符串指针的非托管结构的DLL函数?
extern "C"
{
struct Info
{
int id;
char* szName;
};
Info* LookupInfo(int id);
}
在C#,如何可以声明结构布局中,声明互操作呼叫,和(假定一个非空值被返回)利用字符串值?换句话说,我如何将以下内容翻译成C#?
#include "InfoLookup.h"
void foo()
{
Info* info = LookupInfo(0);
if(info != 0 && info->szName != 0)
DoSomethingWith(info->szName);
// NOTE: no cleanup here, the DLL is caching the lookup table internally
}
您不能将Marashal Info直接作为返回类型 – JaredPar 2008-12-10 17:35:00