C# 在Vista X64中无法加载C++应用程序中的C++ DLL 我在C++中编写了一个DLL,需要在C中应用。它在Vista x86下运行很好,但是在x64下无法加载。因此,我构建了一个x64版本的DLL,检测操作系统是x86还是x64,并对相应的DLL使用相应的互操作调用。这在Vista x86下运行良好,但在Vista x64下,当它尝试加载DLL时,我会遇到一个并行错误。为什么它无法加载它,可以做些什么来纠正这一点?如果您需要更多信息,请告诉我,我不确定什么信息与解决此问题相关。
第一个想法:您可以尝试将项目C部分中的平台目标设置设置为x86,以查看它是否在Vista 64机器上以32位兼容模式运行吗C# 在Vista X64中无法加载C++应用程序中的C++ DLL 我在C++中编写了一个DLL,需要在C中应用。它在Vista x86下运行很好,但是在x64下无法加载。因此,我构建了一个x64版本的DLL,检测操作系统是x86还是x64,并对相应的DLL使用相应的互操作调用。这在Vista x86下运行良好,但在Vista x64下,当它尝试加载DLL时,我会遇到一个并行错误。为什么它无法加载它,可以做些什么来纠正这一点?如果您需要更多信息,请告诉我,我不确定什么信息与解决此问题相关。,c#,c++,dll,side-by-side,C#,C++,Dll,Side By Side,第一个想法:您可以尝试将项目C部分中的平台目标设置设置为x86,以查看它是否在Vista 64机器上以32位兼容模式运行吗 关于SxS错误的更多信息将非常有用-它可能与某些特定的32位错误有关?未安装的运行库版本?第一个想法是:能否尝试将项目C部分中的平台目标设置设置设置为x86,以查看它是否在Vista 64机器上以32位兼容模式运行 关于SxS错误的更多信息将非常有用-它可能与某些特定的32位错误有关?未安装的运行库版本?有关MadKeithV答案的更多信息: 在Windows x64中,进
关于SxS错误的更多信息将非常有用-它可能与某些特定的32位错误有关?未安装的运行库版本?第一个想法是:能否尝试将项目C部分中的平台目标设置设置设置为x86,以查看它是否在Vista 64机器上以32位兼容模式运行
关于SxS错误的更多信息将非常有用-它可能与某些特定的32位错误有关?未安装的运行库版本?有关MadKeithV答案的更多信息: 在Windows x64中,进程可以作为32位或64位进程启动。64位进程只能加载64位DLL,32位进程只能加载32位DLL 如果您的平台目标(例如在.Net应用程序的项目属性中指定的)设置为任何CPU,则中间代码将编译为32位或64位代码,具体取决于目标平台,即在x64系统上,将生成64位代码 因此,代码无法再加载32位dll
如果代码加载非托管程序集,则应始终明确指定目标平台。有关MadKeithV答案的更多信息: 在Windows x64中,进程可以作为32位或64位进程启动。64位进程只能加载64位DLL,32位进程只能加载32位DLL 如果您的平台目标(例如在.Net应用程序的项目属性中指定的)设置为任何CPU,则中间代码将编译为32位或64位代码,具体取决于目标平台,即在x64系统上,将生成64位代码 因此,代码无法再加载32位dll
如果您的代码加载非托管程序集,则应该始终明确指定目标平台。 并列错误可能更容易由您的C++ DLL清单文件设置引起,要么它们没有被嵌入,要么您选择不嵌入清单并使用32位版本清单。
简单的解决方法是将C应用程序标记为x86的杯子,并用32位DLL运行。
并排错误可能更容易由C++ C++ DLL清单文件设置引起,或者它们没有被嵌入,或者您选择不嵌入清单,而是使用32位版本清单。
简单的解决方案是将您的c应用程序标记为x86 cup,并使用32位dll运行。如果其他方法都不起作用。。你可以试一试。
它显示未找到的文件依赖项。。这可能会给您一个继续的线索。如果没有其他办法。。你可以试一试。
它显示未找到的文件依赖项。。这可能会给您一个继续的线索。需要在客户端计算机上安装适用于x64的VC90的redist。就清单而言,我认为您可以修改它以删除processorArchitecture标记。要么这样,要么让它说任何。需要在客户端计算机上安装适用于x64的VC90的redist。就清单而言,我认为您可以修改它以删除processorArchitecture标记。要么这样,要么让它说任何。您的32位后进程中有一个小错误,只加载32位而不是64位DLL。但是谢谢你的帖子,这很有用,我不知道背景,只知道修复程序。你的帖子中有一个小错误-32位进程只加载32位而不是64位DLL。但是谢谢你的帖子,这很有用,我实际上不知道背景,只知道修复程序。你是对的,我没有在客户机上安装VC90 redist。愚蠢的错误!:你说得对-我没有在客户机上安装VC90 redist。愚蠢的错误!: