VS2008 exe-VC6 dll互操作性

Posted

技术标签:

【中文标题】VS2008 exe-VC6 dll互操作性【英文标题】:VS2008 exe-VC6 dll interoperability 【发布时间】:2010-01-07 10:01:59 【问题描述】:

我听说在 VS2005 和 VC6 之间传递 wchar_t 是非常危险的。 我试图从 VS2008 exe 中删除从 VC6 dll 分配的内存,它引发了断言。在引用Bad pointer or link issue when creating wstring from vc6 dll 之后,我在VC6 dll 中添加了一个用于删除内存的函数。它解决了我的问题。

但是 VS2008 和 VC6 之间 whcar_t 的内部结构有什么区别吗..请帮忙..

Rgrds, 神户

【问题讨论】:

【参考方案1】:

VC6 一开始就没有wchar_t 类型。但是,两者都是 16 位类型,因此不会引起重大问题。这可能与您在使用 malloc()free() 时遇到的问题无关,它们适用于原始、无类型的内存。

【讨论】:

我不这么认为,我可以在 VC6 应用程序中使用 wchar_t。 [MFC AppWizar exe - 控制台]。但正如你所说,与不同的 CRT 一起使用时没有大问题。

以上是关于VS2008 exe-VC6 dll互操作性的主要内容,如果未能解决你的问题,请参考以下文章

VS 中 无法嵌入互操作类型“……”,请改用适用的接口的解决方法

VS2010中,无法嵌入互操作类型“……”,请改用适用的接口的解决方法

本机 C++ 程序在使用 C++/CLI 和 C# 互操作 DLL 启动时崩溃

无法嵌入互操作类型“dsdll.hisdllClass

Visual Studio 2010 64 位 COM 互操作问题

DLL 互操作/有趣的错误