在引用第三方文件时,出现如下问题:
引用方式:
采用DllImport类加载非托管第三方API,调用托管方法。
[DllImport("TLJY.dll", EntryPoint = "TLJY_Reset", CallingConvention = CallingConvention.Cdecl)]
public static extern int TLJY_Reset(DevHandle hZHHK429);
解决方法:
1、以管理员身份安装第三方给的软件(如果第三方API在软件安装的目录内);
2、将dll的文件路径添加到环境变量中;
3、给VS运行环境管理员身份
(找到VS启动应用devenv.exe—>右键—>兼容性疑难解答—>疑难解答程序—>该程序需要附加权限—>测试程序—>是,为程序保留这些设置)。
非托管的:dll文件拷贝到bin目录下没有任何帮助,因为CLR会把文件拷贝到一个临时目录下运行,而CLR只会拷贝托管文件,而非托管的dll虽放在了bin下但不会被拷贝,故仍会出现无法加载的问题。