读书人

DLL有关问题

发布时间: 2012-03-12 12:45:33 作者: rapoo

DLL问题
在vs2008下

我想这样:
在一个解决方案里,

一个主要项目,生成exe的,
有几个头文件,有自定义类,
像:
//A.h
class A{//...};

一个DLL项目,用到第一个项目的类,
用到了指向类的指针,
要调用类的成员函数,
像:
#include "project1\A.h"
extern "C" __declspec(dllexport) void do(DWORD,A*);

我把第一个项目的头文件添加到第二个项目里了,
两个项目都用了\MDd了,

但是传到DLL函数的指针虽然是对的,
但是断点看指针的数据是错误的,
跟在主要项目里的指针的数据不一样,
导致稀奇古怪的结果,
但是指针是一样的!!!!!!

代码我写了很长了,贴不完。
可能是什么错了?
请教各位大牛。

[解决办法]

探讨

这样做当然是错的。

1. 一般而言,用反了,应该把类定义在DLL中,导出(dllexport) ,然后EXE导入(dllimport)使用。
2. 最好是DLL和EXE各自创建类的实例,不要跨过去使用,比如EXE创建类实例,传递指针给DLL。
这样做也是不对的。

[解决办法]
ctrl + alt + m, 1直接看内存

读书人网 >C++

热点推荐