从DLL 64位加载和调用DLL 32位

编程入门 行业动态 更新时间:2024-10-24 18:25:41
本文介绍了从DLL 64位加载和调用DLL 32位的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

HI,

我有64位DLL,而我有32位dll,我无法重新编译.

I have 64 bit DLL and I have 32 bit dll that I can't re-compile.

我想从我的64位dll调用一个方法转换为32位DLL.我尝试使用LoadLibraryEx(),但是getProcessAddress不起作用.

I want to call from my 64 bit dll a method into 32 bit DLL. I try to use LoadLibraryEx() but then the getProcessAddress doesn't work.

我该怎么办?

代码是:

typedef int (*startOrder)(); HINSTANCE hLib = LoadLibraryEx(L"my32bit.dll", NULL, LOAD_LIBRARY_AS_DATAFILE); //acutPrintf(L"\nLoadLibraryEx"); startOrder start; if (hLib !=NULL) { //acutPrintf(L"\nLoadLibraryEx != NULL"); start=(startOrder)GetProcAddress(hLib,"StartOrder"); if (!start) ; else { start(); } FreeLibrary(hLib); } else { //Printf(L"\nLoadLibrary == NULL"); }

推荐答案

您不能将32位DLL加载到64位中过程.那是行不通的.

You cannot load a 32bit-DLL into a 64bit process. That will not work.

您唯一可以做的事:

1.开始一个新的加载32位DLL的32位进程

1. Start a new 32-bit process which load the 32bit DLL

2.与64位和32位进程之间的InterProcessCommunication进行通信.

2. Comunicate with InterProcessCommunication between the 64 and 32bit processes.

更多推荐

从DLL 64位加载和调用DLL 32位

本文发布于:2023-11-12 07:35:53,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1580892.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:加载   DLL

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!