读书人

最近遇到一个奇怪的vc的dll怎么在c#

发布时间: 2012-04-28 11:49:53 作者: rapoo

最近遇到一个奇怪的vc的dll,如何在c#中调用呢
是一个第三方的dll, 他暴露一个抽象类(纯虚的)。

类似如下:
class __declspec(dllexport) CTestAPI
{
public:
static CTestAPI *CreateTestApi(const char *pszPath = "", const bool bTest=false);
virtual void Release() = 0;
protected:
~CTestAPI(){};
}


然后傻掉了,这个怎么被c#引用啊?


[解决办法]
http://wenku.baidu.com/view/feda948002d276a200292eef.html
[解决办法]
是 C++.net 开发的不?如果是直接添加引用,如果不是请查PInvoke相关资料。
[解决办法]
http://blogs.msdn.com/b/vcblog/archive/2008/12/08/inheriting-from-a-native-c-class-in-c.aspx
[解决办法]
C#好像不能调用C++的class
[解决办法]
使用 __thiscall 导入函数,把 this 当作第一个参数。
和导入函数一致。

同时,自己定义一个虚函数结构。

不过,我建议你最好写一个 托管的 C++ DLL 来引用这个。
那样,你的程序直接调用你自己的托管 DLL 就可以了。
[解决办法]
处理好双重接口的问题,几乎可以不计。

读书人网 >C#

热点推荐