有两篇文章比较靠谱。不过不知道具体方法。
http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html
创建一个进程外COM(EXE类型),内部链接dll,不懂这个什么意思。
另外有说使用代理进程(dllhost.exe)也不懂如何实现。
有做过的人关注下。谢谢。
http://www.cnblogs.com/mazhenyu/archive/2007/06/28/798710.html
创建一个进程外COM(EXE类型),内部链接dll,不懂这个什么意思。
另外有说使用代理进程(dllhost.exe)也不懂如何实现。
有做过的人关注下。谢谢。
它们之间可以使用系统提供的通信办法来交换数据。
上面提到的创建一个进程外COM的方式。实在不明白是什么意思。不知道还有人可以给我讲讲进程外COM的方式不,谢谢
在博客园上看到一篇文章:
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],不甚感激!
在博客园上看到一篇文章:
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],不甚感激!