有没有办法加载32位DLL库(具有与LoadLibrary相同的用法)我想使用该函数和GetProcAddress.
我看了WOW,但它似乎没有提供功能.功能应该存在,因为像DependencyWalker这样的工具能够读取32位dll的符号,即使它的64位也是如此.
谢谢
我有一个x64服务器,因为我的库编译为AnyCPU,在x64下运行.我们需要访问在x86下注册的COM组件.我不太了解COM,我的谷歌搜索让我无处可去.
问题:对于COM组件,我可以使用从x64到x86的符号注册表链接吗?我是否还需要在x64下注册COM组件?我可以(这里的任何陈述......)?
谢谢.
我试图在Win7 x64上运行我的.NET 3.5 WinForms应用程序.该应用程序使用NHibernate和System.Data.OracleClient来访问Oracle数据库.Oracle客户端是32位.
启动应用程序时,我收到以下错误消息
尝试加载Oracle客户端库会引发BadImageFormatException.在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题.
为此,我将构建目标定位到x86平台:

令我惊讶的是,尝试在Win7平台上执行新版本时出现了相同的错误消息.
NHibernate程序集在运行时加载Assembly.Load("...");.
可能是NHibernate DLL仍然以64位模式运行,而主机exe以32位模式运行.这听起来很奇怪.或者可能是因为某种原因,我的应用程序运行在64位模式,即使它的目标是x86?
更新:
我使用CorFlags检查了我的二进制文件,它标记为32位:
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 4.0.30319.1
Copyright (c) Microsoft Corporation. All rights reserved.
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 3
ILONLY : 1
32BIT : 1
Signed : 0
Run Code Online (Sandbox Code Playgroud)
我也在任务管理器中检查了它,它有一个*32后缀.
我还尝试并使用CorFlags将32位标志添加到我的应用程序附带的所有程序集.它仍会产生相同的错误消息.
我很困惑......困惑......困惑......
我实际上正在使用32位的辅助可执行文件.但我可以使用在32位CodeDOM上运行的DLL吗?
我可以访问带有预编译的32位mex文件的库(Windows:.mexw32,Linux :).mexa32.我很难自己为64位机器编译库,所以我想知道是否有办法让MATLAB 64位与32位mex文件一起工作.
XCode的ARC重构迫使我的Cocoa Library DLL为64位,我不知道我是否仍然可以DllImport使用x86 C#应用程序中的DLL.这可能吗,这样做有什么后果吗?
我从64位应用程序访问32位dll.为此,我使用共享内存IPC,我做了类似的事情
TCHAR szName[]=TEXT(Path of DLL on local machine);
TCHAR szMsg[]=TEXT("abc");
HANDLE file = CreateFile(szName,
GENERIC_READ,
0,
NULL,
CREATE_NEW,
FILE_ATTRIBUTE_NORMAL,
NULL);
Run Code Online (Sandbox Code Playgroud)
这是通过IPC共享DLL的正确方法吗?我可以在阅读器界面访问DLL内定义的函数吗?