Pointers ';不安全';C+中的函数+/CLI包装器? 首先让我感谢过去几天来帮助过我的人,我终于有了C++类的C++/CLI包装器,我可以在C++中创建实例,谢谢你的StAcExpLoad!p>

Pointers ';不安全';C+中的函数+/CLI包装器? 首先让我感谢过去几天来帮助过我的人,我终于有了C++类的C++/CLI包装器,我可以在C++中创建实例,谢谢你的StAcExpLoad!p>,pointers,c++-cli,wrapper,Pointers,C++ Cli,Wrapper,其中一些函数将指针作为参数,但是,当使用PInvoke时,您可以将函数声明为不安全的,然后使用ref关键字调用它,就像这样 [DllImport("DLLName.dll")] public static unsafe extern someFunc(ref int); // then in main... int a; someFunc(ref a); 但是我如何去包装C++ C++中的指针函数的C++函数,这样我就可以从C? 谢谢 编辑-我的功能符号为 UINT Init(char*

其中一些函数将指针作为参数,但是,当使用PInvoke时,您可以将函数声明为不安全的,然后使用ref关键字调用它,就像这样

[DllImport("DLLName.dll")]
public static unsafe extern someFunc(ref int);

// then in main... 
int a;
someFunc(ref a);
<>但是我如何去包装C++ C++中的指针函数的C++函数,这样我就可以从C? 谢谢

编辑-我的功能符号为

UINT Init(char* info[], int amount, int ID1, int ID2)       
UINT GetJPValues(SJPInfo* jpi, int iTimeoutMS)
UINT GetNums(int amount, int* out, int iTimeoutMS)
UINT GetJPWValues(SJP* jp, int ID, UINT stake, int iTimeoutMS)
UINT Confirm(bool *bConfirmed, int ID, int iTimeoutMS)

JPFION和SJP是C++结构,只包含数据,我创建了C++版本,它们的封装方式与C++的相同,但我也不确定如何将C++结构当作参数来调用C++函数,然后调用C++函数。


< >编辑2——忘记提到结构只是用C++代码中的Winsock ReV填充数据,所以它们可能会被传递为char *

从经验中我总是将接口保持为简单类型,如int、双等。(我在界面中也使用了String^,并简单地使用在互联网上很容易找到的代码转换为std::String)


<>这确实意味着包装类中暴露的函数需要更多的参数,但是它很容易理解,最重要的是它是有效的!

你的C++函数签名是什么?有几个指针,我将把它们添加到POSIF你想要一个完整的答案中,你还需要发布<代码> SjpFielp的定义。和
SJP
(以及它们使用的任何其他UDT),以及哪些参数的语义是有效常量(即,哪些参数将被写入,哪些仅从中读取)这些结构定义了包结构,所以我需要把指针传递给结构体,我一直在做一些研究,INTPTR存在于C++和C++中,我可以看到它可以指向任何类型,我可以用它来解释,传入的结构是用从Windows SoCK接收到的任何内容填充在C++代码中的。T