有两篇文章比较靠谱。不过不知道具体方法。
http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html
创建一个进程外COM(EXE类型),内部链接dll,不懂这个什么意思。
另外有说使用代理进程(dllhost.exe)也不懂如何实现。
有做过的人关注下。谢谢。

解决方案 »

  1.   

    都不是64bit进程直接加载,而是等于再包装一个32bit的exe来加载32bit的DLL,然后64bit的进程跟32bit的进程通信来变相调用32bit的dll
      

  2.   

    再包装一个32bit的exe?你的意思是说64bit的程序通过路径的方式去program(x86)目录下去调出这个程序?但是这个时候32bit的exe是被wow64子系统托管着。不会有什么问题吗。我试试看。谢谢提点
      

  3.   

    通过进程通信,socket,消息等,wow64等无所谓..也一样可以通信交换数据等
      

  4.   

     windows64位编程白皮书里面已经明确讲了,win64与win32在用户层是严格隔离开的,win32应用程序不可以访问win64的内存,win64也不能读取win32的内存。
    它们之间可以使用系统提供的通信办法来交换数据。
      

  5.   

    我建立一个32位的进程调用dll。然后通过64的进程和这个exe通信。比如我想调用哪一个函数就发一个消息。32位的exe接收到消息后就去调用相应的函数。然后通过消息的方式再发还给64位的exe。不过这里面有个同步的问题。也就是我我必须等待会影响我的性能和稳定性。
    上面提到的创建一个进程外COM的方式。实在不明白是什么意思。不知道还有人可以给我讲讲进程外COM的方式不,谢谢
      

  6.   

    您好:
    在博客园上看到一篇文章:
    64位进程调用32位dll的解决方法
    http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html
    验证:
    工作流程:
    1.创建一个进程外COM服务器(EXE)。
    2.将32位dll的接口函数封装为COM服务器的相关接口。
    3.注册COM服务器*.exe /regserver  (注销 *.exe /unregserver)。
    4.64位进程调用32位COM服务器接口,成功。从而曲线实现了64位进程调用32位dll。
    具体步骤:
    我首先创建了一个简单的dll工程,只输出一个函数int c = add(int a,int b); 生成lib和dll
    然后创建一个进程外COM(EXE类型),内部链接dll,添加方法Method: Add(long *c)
    { *c = add(1,2);}编译生成。
    然后注册COM,*.exe /regserver
    最创建一个64位WIN32工程验证64位环境下方法调用是否正确,经验证正确!!!
     
    本人有三个问题:
    1、创建的进程外服务器是用MFC下的还是使用ATL创建?
    2、这里的“内部链接dll”是什么意思?怎么样连接呢?
    3、注册完COM服务器,是不是就可以在64位下直接调用32的dll而不用调用COM服务器的相关接口呢?感谢大家的指教和浏览!!!如果您能够实现上面的具体步骤麻烦我我说一声哈,我的QQ:542739787,Email:[email protected],不甚感激!
      

  7.   

    您好:
    在博客园上看到一篇文章:
    64位进程调用32位dll的解决方法
    http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html
    验证:
    工作流程:
    1.创建一个进程外COM服务器(EXE)。
    2.将32位dll的接口函数封装为COM服务器的相关接口。
    3.注册COM服务器*.exe /regserver  (注销 *.exe /unregserver)。
    4.64位进程调用32位COM服务器接口,成功。从而曲线实现了64位进程调用32位dll。
    具体步骤:
    我首先创建了一个简单的dll工程,只输出一个函数int c = add(int a,int b); 生成lib和dll
    然后创建一个进程外COM(EXE类型),内部链接dll,添加方法Method: Add(long *c)
    { *c = add(1,2);}编译生成。
    然后注册COM,*.exe /regserver
    最创建一个64位WIN32工程验证64位环境下方法调用是否正确,经验证正确!!!
     
    本人有三个问题:
    1、创建的进程外服务器是用MFC下的还是使用ATL创建?
    2、这里的“内部链接dll”是什么意思?怎么样连接呢?
    3、注册完COM服务器,是不是就可以在64位下直接调用32的dll而不用调用COM服务器的相关接口呢?感谢大家的指教和浏览!!!如果您能够实现上面的具体步骤麻烦我我说一声哈,我的QQ:542739787,Email:[email protected],不甚感激!