我有个老项目,是用C++写的DLL,主程序为C#,没源码,已经知道C++DLL的接口入口和参赛,想在主程序调用该C++DLL时再套一层C#接口,必须使用dllimport C#DLL,请问该C#DLL如何编写
就是dllimport,你不是都知道了吗,把参数类型匹配对就行了
不可以,C#不能创建那种具有导出函数的标准dll,C#只能产生程序集dll,使用引用的方式调用。
类似
[DllImport("user32.dll", EntryPoint="MessageBoxA")]
static extern int MsgBox(int hWnd, string msg, string caption, int type);
如果你调用c#的dll,就不用DllImport,因为是托管dll,直接引用进来就行了
就是说 A通过DllImport调用c++的dll,B通过引用,使用A
可以的, 参数与类型配对了就OK了。希望能帮到您。祝您生活愉快
C#调用WIN32 API 是可以的啊,我知道,但是我想在以前的系统用DllImport C++DLL,用C#做个转接,转接后,再在该C# DLL 使用C++DLL,所以必须使用DllImport C# DLL,这样真的不行码,还有更好的解决方法吗?
反编译C#主程序,修改源码
c#你可以创建类库,编译后生成dll文件
因为你没有源代码 所以你不可能引用DLL
除非你可以反编译源码 修改相关调用之后可以试试