【发布时间】:2020-06-27 05:23:58
【问题描述】:
我正在尝试使用带有 ANSI C 编译器的 DLL。其中一个 DLL 函数采用 void 指针。在随 DLL 提供的某些示例 Windows 代码中,传递给函数的结构被定义为具有三个 CString 实体。我已经告诉 DLL 的作者,他们不应该通过他们的 DLL 函数传递 MFC 类。他们告诉我只需用 char 数组替换结构中的 CString 声明,应该没问题。我 99% 肯定那是错误的,但由于我没有 VC++,也没有任何 MFC 经验,而且我看到一些帖子说 LPTSTR 可以用来代替 CString (What is `CString`?),我开始怀疑我是不是错了。
有人可以帮我确认一下 CString 和 LPTSTR 作为函数的参数是不可互换的吗?如果您可以提供 CString 类定义的来源,那将很有帮助,因此我可以将其发送给 DLL 的作者并解释 char 数组的内存占用与 CString 类不同,您可以'不要将指针传递给使用 char 数组定义的结构,然后将其视为一堆 CString 对象。
【问题讨论】: