一、环境准备
电脑系统:Windows 10 专业版 20H2
IDE:Microsoft Visual Studio Professional 2022 (64 位) - Current 版本 17.11.4
其他:
二、测试目的
将基于C++创建DLL库,封装到C#生成的exe中。
一般C++创建的库,在C#中使用,都是采用DllImport导入的,且要求库处于exe相关路径下,
[DllImport("dddddd.dll", CallingConvention = CallingConvention.Cdecl)]
extern static int xxxxxx();
可是有时,就是只想要一个exe发出去,其他dll不想看到,咋办?
这里提供一种实现方式:将这类dll放入嵌入资源,一起打包成exe,点击exe时,将嵌入资源释放为dll文件,并存到临时文件夹中(也可放入内存中,但是实现好麻烦,少数几个接口,可以这样搞,如果数量太多,感觉也难搞),再通过SetDllDirectory指定dll路径。
三、创建非托管DLL
可以参考下,其他方式创建的dll,在C#上使用方法应该