【发布时间】:2014-08-04 04:47:21
【问题描述】:
//结构:
struct MYDATA{
char calls[4069];
char Desc[4096];
char error[1024];
} ;
//测试函数
char *Argv[] = { "ToolName", "USername", "192.168.2", "3", "400"};
typedef void* ( *__stdcall pCstartSIPSessionint)(char **argv );
typedef struct MYDATA*(*__cdecl pgetStat) ();
pCstartSIPSessionint startSessionint = (pCstartSIPSessionint )GetProcAddress(HMODULE (hGetProcIDDLL),"startSessionint");
//DLL导入
HINSTANCE hGetProcIDDLL = LoadLibrary(TEXT("E:\\MyDll.dll"));
pgetStat getStat ;
getStat = (pgetStat ) startSessionint(Argv);
MYDATA *mydata;
if(getStat != NULL)
mydata= getStat();
printf("\n mydata\n %s ", mydata->call);
printf("\n mydata\n %s ", mydata->summary);
printf("\n mydata\n %s ", mydata->error);
如何转换 C# 中的代码? 而且我很困惑将结构的地址传递给 C# 中的 Void* 我只能传递值,如何将地址传递给结构。
提前谢谢...!
【问题讨论】:
-
"这很有帮助,但我用一些行来构造......如果我没有运行时间,我的事情 intptr 具有相同的内存地址......我可以知道 y – user3322182 "......你会必须向我们展示“回调/委托”函数内部的内容......以确定为什么它总是返回相同的指针。