我在Visual Studio 2012中的解决方案有三个项目。一个WinForms项目和两个VC++项目(库)。最初所有的开发都是在Windows 7 Professional 32 Bit上完成的。但最近,我的系统已更新为Windows 7 Professional 64位。从32位变为64位
我的应用程序通过设置为AnyCPU的Active Solution Platform成功运行。但是,当应用程序启动时,我执行了一些调用底层VC++库的操作,该应用程序崩溃时,dll的FileNotFoundException
。
那么我应该将主动解决方案平台更改为x64?或者可以保持原样。
我试图将活动解决方案平台更改为x64。但该DLL没有建立。我得到一个error LNK2019: unresolved external symbol
我从来没有使用过64位之前。我应该怎样做我的应用程序构建?
未找到的符号出现在静态库的第三个VC++项目中。
WinForms依赖于dll,而dll依赖于静态lib。
更新:
当构建配置设置为AnyCPU,我得到一个System.BadImageFormatException
。根据其他信息,它说无法加载文件或程序集dll_name,....
。尝试加载格式不正确的程序。
为什么你不告诉我们更多关于你遇到的错误。什么符号没有解决? – 2015-02-12 04:43:20
除非应用程序在64位模式下运行有令人信服的理由,否则将其保留为32位可能会更简单。这意味着将主动解决方案平台设置为x86。 – 2015-02-12 05:06:42
64位进程无法调用32位dll,反之亦然。你必须确保程序中的所有调用函数都是64位版本 – 2015-02-12 05:11:34