相关疑难解决方法(0)

在64位应用程序中加载32位DLL库

有没有办法加载32位DLL库(具有与LoadLibrary相同的用法)我想使用该函数和GetProcAddress.

我看了WOW,但它似乎没有提供功能.功能应该存在,因为像DependencyWalker这样的工具能够读取32位dll的符号,即使它的64位也是如此.

谢谢

dll loadlibrary getprocaddress

39
推荐指数
2
解决办法
7万
查看次数

从x64 .NET访问x86 COM

我有一个x64服务器,因为我的库编译为AnyCPU,在x64下运行.我们需要访问在x86下注册的COM组件.我不太了解COM,我的谷歌搜索让我无处可去.

问题:对于COM组件,我可以使用从x64到x86的符号注册表链接吗?我是否还需要在x64下注册COM组件?我可以(这里的任何陈述......)?

谢谢.

.net com 64-bit x86 interop

25
推荐指数
2
解决办法
2万
查看次数

如何强制.NET应用程序以32位模式运行

我试图在Win7 x64上运行我的.NET 3.5 WinForms应用程序.该应用程序使用NHibernate和System.Data.OracleClient来访问Oracle数据库.Oracle客户端是32位.

启动应用程序时,我收到以下错误消息

尝试加载Oracle客户端库会引发BadImageFormatException.在安装了32位Oracle客户端组件的64位模式下运行时,将发生此问题.

为此,我将构建目标定位到x86平台:

Build设置的屏幕截图

令我惊讶的是,尝试在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位标志添加到我的应用程序附带的所有程序集.它仍会产生相同的错误消息.

我很困惑......困惑......困惑......

64-bit x86 corflags .net-3.5

10
推荐指数
2
解决办法
2万
查看次数

我可以从64位应用程序运行C#程序集(dll)为32位吗?

我实际上正在使用32位的辅助可执行文件.但我可以使用在32位CodeDOM上运行的DLL吗?

.net c# dll codedom c#-2.0

6
推荐指数
1
解决办法
1838
查看次数

MATLAB for 64位可以使用预编译的32位mex文件吗?

我可以访问带有预编译的32位mex文件的库(Windows:.mexw32,Linux :).mexa32.我很难自己为64位机器编译库,所以我想知道是否有办法让MATLAB 64位与32位mex文件一起工作.

matlab

5
推荐指数
1
解决办法
4076
查看次数

在32位应用程序中使用64位DLL

XCode的ARC重构迫使我的Cocoa Library DLL为64位,我不知道我是否仍然可以DllImport使用x86 C#应用程序中的DLL.这可能吗,这样做有什么后果吗?

c# interop 32bit-64bit

4
推荐指数
1
解决办法
7153
查看次数

我可以将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内定义的函数吗?

c++ windows dll 32bit-64bit

3
推荐指数
1
解决办法
196
查看次数