用LoadLibrary加载DLL失败,为什么呢?
我用的是VC2005,生成了一个DLL,然后在程序中加载这个DLL,如下:
HINSTANCE hDll = ::LoadLibrary("D:\\hkrt.dll");
DWORD dwErr = ::GetLastError();
执行结果是这样的:在我的开发机器上加载是正常的,但把程序和DLL放在一台没有装VC2005的机器上执行时,加载就失败了,hDll的值是0,dwErr的值是14001,查了查“Error Lookup”,14001对应的描述是:“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题”。
我先后试了三台没有安装VC的机器,都是这个问题。
我上网查原因,有人说需要安装“.Net Framework”,于是我下载了“.Net Framework2.0”并安装,之后动态库可以正常调用了。
这个程序和这个DLL是需要打成安装包的,如果再把“.Net Framework2.0”打进安装包,安装包的体积就会变得很大,由于一些原因,生成的安装包不能很大。
我奇怪的是,为什么调用一个标准的动态库还需要在机器上安装.Net呢?不安装不行吗?
我想问一下,有什么方法可以在不安装.Net的情况下正常调用?
谢谢了!