Pab*_*blo 2 c# c++ static-libraries visual-studio-2010
有一个lib文件.h,它与一些设备驱动程序一起使用.Visual Studio C++项目示例使用该库作为静态链接.
从该库导出的函数只有2个.
HANDLE open_dev();
HANDLE open_file( char *filename );
Run Code Online (Sandbox Code Playgroud)
我想在我的C#项目中使用该库,并再次静态链接它.怎么可能?
您可以创建一个DLL,在其中为.lib中的每个函数创建包装函数:
extern "C" __declspec (dllexport) HANDLE OpenFile(char const * filename)
{
return open_file(filename);
}
Run Code Online (Sandbox Code Playgroud)
在C#中,您使用P/Invoke使dll函数可用:
[DllImport("WrapperLib.dll")]
private static extern System.IntPtr OpenFile(string filename);
Run Code Online (Sandbox Code Playgroud)