我正在使用一个执行内存分配并返回指针的DLL。 代码是这样的:
ObjectClass *obj = FunctionFromDLL();
obj
是一个有效的指针,但obj->SubObject
是一个错误的指针(0xcdcdcd)
我检查了FunctionFromDLL()
正确分配SubObject
,当函数返回给调用者时,这个指针只会得到一个错误的值。
DLL有什么特别的“共享”内存吗?
答案 0 :(得分:2)
没有特殊的方法来共享dll和app之间分配的内存,只需确保在你不再使用它之后删除dll中的内存。
编辑:0xCDCDCDCD:由Microsoft的C ++调试运行时库用于标记未初始化的堆内存
答案 1 :(得分:0)
这是因为我将_USE_32BIT_TIME_T定义为预处理器值。
我删除了它,现在工作正常。
谢谢大家。