MFC调用LabVIEW创建的DLL出现错误代码 (0xc0000142)。主要软件: LabVIEW Run-Time Engine主要软件版本: 5.0 主要软件修正版本: 次要软件: Measurement Studio>>Visual C++ Support
问题: 我在LabVIEW中创建了一个DLL,然后尝试在MFC C++应用程序中静态的调用。我得到如下错误提示“应用程序初始化失败(0xc0000142)”,点击OK来结束应用程序。我能够在LabVIEW以及一个Win32应用程序中成功调用这个LabVIEW Dll,我如何能够解决这个问题? 解答: 这个错误发生在MFC应用程序中,是因为MFC应用程序试着在将重要的系统库文件如User32.dll导入内存之前首先将调用LabVIEW Dll文件。然而LabVIEW DLL将调用这些重要的系统库文件。如果它们不在内存中,LabVIEW DLL文件就会在加载的时候报错。在Win32控制台程序中,系统库文件在LabVIEW DLL之前调入内存,因此避免了错误。 为了解决这个问题,你必须要么动态调用LabVIEW DLL或者你需要设置延时加载选项来延迟DLL的加载。为了在Visual Studios中设置该选项,打开项目属性并且选择进入属性配置 »链接器»输入然后在延时加载DLL项中输入LabVIEW DLL的名称。如下图所示,其中的Sum.dll就是你的LabVIEW . 为了动态的调用你的LabVIEW DLL,参考如下MSDN链接的一个动态调用DLL的例子。你需要从上图中的设置中移除Sum.dll. 相关链接: MSDN: Using Run-Time Dynamic Linking Using the text above as a reference, please enter your edited text below: 附件:
报告日期: 09/02/2008 最近更新: 09/17/2008 文档编号: 4P1D2AQX |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

