gpt4 book ai didi

.net - 托管/非托管 C++ 中的 wchar_t NUL

转载 作者:太空宇宙 更新时间:2023-11-04 12:16:19 24 4
gpt4 key购买 nike

我需要使用这个(非托管)C++ 库。其中一种方法将 wchar_t* 作为参数。尝试在 C# 中使用它,但我的所有尝试都导致错误代码“无效参数”。

我为它写了一个托管的 C++ 包装器——同样的问题。现在我比较了我的 C++ 包装器和库附带的 native C++ 示例的参数值。我看到的唯一显着差异是我的托管 C++ 中的 NUL 是“0 L”(Visual Studio 观察),而非托管示例中的 NUL 只是“0”。它们都具有相同的值... 0。

这真的是问题所在吗? (我尝试将该字符手动设置为“0”,但得到了相同的结果)如果是,我该如何解决?

编辑:图片:http://img6.imageshack.us/img6/5977/comparisonofvalues.png好的,左边是我的代码(托管C++),右边是示例(非托管C++)。事实上,右边一个在工作,左边一个不工作(函数拒绝参数)。我认为问题出在第 17 个字符 - NUL。还有什么想法吗?

最佳答案

调试器的区别只是外观。您会注意到调试器通常显示两个值:二进制值和匹配的 Unicode 字符。但是您不能为二进制值 0 显示 Unicode 字符。两个调试器处理它的方式略有不同(显示 L'' 与不显示任何内容),但内存中的位是相同的。

另一方面,您的 ip 字符串是垃圾。

关于.net - 托管/非托管 C++ 中的 wchar_t NUL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7531900/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com