我在托管c++ dll中有一个类被声明为
public class IPHelper
{
public:
static void CheckIP(LPWSTR pSocketName);
static void DebugMessage(const wchar_t *str, ...);
private:
static DWORD GetIPInformation(PSOCKET_RECORD &pInfo);
};我成功地编译了它,并将其作为引用添加到我的c#项目中。我可以使用命名空间,但是这个类似乎是空的,并且我无法调用其中的函数。
有什么想法吗?
发布于 2011-07-12 01:12:31
该类不是托管的,它是本机的。如果要在托管代码中使用它,则需要将其称为public ref class。
发布于 2011-07-12 01:12:37
您将需要使用P/Invoke方法调用它。有关详细信息,请参阅this参考。
发布于 2011-07-12 01:35:44
正如其他人所指出的,这是一个原生C++类。假设您的项目启用了CLR,那么您可以很容易地围绕它编写一个简单的C++ / CLI包装器,这将允许您在托管上下文中使用它。
This是C++ / CLI的快速概述,应该可以帮助您朝着正确的方向入门。
https://stackoverflow.com/questions/6653814
复制相似问题