DLL内部的内存分配返回空指针

时间:2012-01-04 14:25:27

标签: c++ windows memory dll

我正在使用一个执行内存分配并返回指针的DLL。 代码是这样的:

ObjectClass *obj = FunctionFromDLL();

obj是一个有效的指针,但obj->SubObject是一个错误的指针(0xcdcdcd) 我检查了FunctionFromDLL()正确分配SubObject,当函数返回给调用者时,这个指针只会得到一个错误的值。

DLL有什么特别的“共享”内存吗?

2 个答案:

答案 0 :(得分:2)

没有特殊的方法来共享dll和app之间分配的内存,只需确保在你不再使用它之后删除dll中的内存。

编辑:0xCDCDCDCD:由Microsoft的C ++调试运行时库用于标记未初始化的堆内存

答案 1 :(得分:0)

这是因为我将_USE_32BIT_TIME_T定义为预处理器值。

我删除了它,现在工作正常。

谢谢大家。