![]() |
1
7
l前缀使字符串成为wchar_t字符串。
您可以使用Windows API函数
|
![]() |
2
6
执行l前缀的特定“函数”是一个宏
当您的项目构建时启用了Unicode支持(在大多数MS dev环境中,这是新项目的默认支持),这些函数会自动添加l前缀,或者对于非Unicode(或ANSI)配置的项目不使用。 不要这样做:
如果项目曾经配置为非Unicode,那么l“abc”仍然是一个宽字符数组,但是lptstr将成为指向8位字符数组的指针。 这是如何将字符串正确分配给ANSI、Unicode或“文本”字符串的方法。(根据项目设置,文本可以是ansi或unicode)(因为L是多余的,所以我省略了L,并添加了C,因为字符串文本应该是常量)。
|
![]() |
3
1
我觉得你很困惑,因为你的功能应该可以正常工作:
但是当你 呼叫 你的功能,你必须小心:
这是因为“abc”和“l”是两种不同的东西。如果你在记忆中看到它们:
编辑添加:
在.NET中没有类似l前缀的内容 这是错误的 . 我刚刚在VisualStudio开设了“新项目-gt;c++& gt;CLR控制台”,第一行是:
|
![]() |
4
1
尝试:
有关使用上的MarshalAsAttribute封送的详细信息 MSDN 。 |
![]() |
5
0
我会用
请注意,您使用的是可移植字符串类型-
|
![]() |
A B · C#Excel自动调整列避免长文本时出错 4 月前 |
![]() |
pseudodev · 失败的测试仅显示堆栈跟踪,不显示完整日志 5 月前 |
![]() |
CactusCake · if语句中应有分号 6 月前 |
![]() |
Bin4ry · 子文件夹中的应用程序设置 6 月前 |