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 启动时崩溃