在 C# 上使用非 clr dll
using non-clr dll on C#
我正在使用许可库(c ++ dll)来开发C#应用程序。
我没有那个库的任何代码,那不是clr。
但我可以使用 pInvoke 在 c# 上导入它的方法,如下所示。
[DllImport("FaceFinding.dll", ExactSpelling = true, CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
unsafe internal static extern int EnrollmentGalleryDBOneToOne(StringBuilder currentFolderPath);
它在调试模式下完美运行。
但这里有问题。
当我制作Visual Studio Installer项目时,我无法在安装程序上导入该dll文件,因为它是非clr。
有没有办法在 C# 安装程序项目上导入非 CLR DLL?
将所有非托管 DLL(包括 FaceFinding.dll)放在安装程序项目的文件系统编辑器的输出文件夹中。这样,它们将与您的应用程序一起发布。
作为旁注,我还建议确保此第三方 DLL 的许可证允许您通过检查其许可协议将其与您的应用程序一起分发。
相关文章:
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- C++ CLR dll 需要 .lib 文件,但非 CLR 不需要
- CLR dll 无法运行托管 DLL,除非它位于 exe 目录(或其子目录)内
- clr 如何使用本机 c++ dll 的引用'&'参数调用函数?
- 当我将 c++ DLL(我从 c# 调用)重新生成为 /CLR(最初是本机)时,性能下降了一半
- 在 C# 上使用非 clr dll
- C++ exe 到 dll 以用作组件 (CLR)
- visual在C++/CLR项目中使用C++DLL库项目
- 反向调用,从本机 C/C++ DLL 调用 C# 对象的方法,而无需 CLI/CLR
- Clr Dll是由测试程序加载的,但不是由调用应用程序加载的
- 用CLR编译的本机DLL,在使用它们之前,我必须公开这些函数吗
- 将 CLR DLL 包装在本机 DLL 中
- Clr dll .net control
- 无法从 C# 运行 C++ clr dll - Dll 已卸载?
- 如何使托管 (clr) 多线程 C++ .dll
- 使用 C++/CLR dll 时 C# 应用崩溃
- 使用公共语言运行时支持(/clr)调用mfc dll时,未能运行mfc应用程序
- 如何避免在c++非clr到clr dll之间引发异常时发生内存泄漏
- 调用我的CLR项目时,KernelBase.dll出现未处理的异常
- 当链接到/clr DLL时,c++链接器错误(未解决的外部)