|
|
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
我会用
请注意,您使用的是可移植字符串类型-
|
|
Feem · C中COM对象的实际地址# 2 年前 |
|
|
Zee · 如何从Windows SDK打开文件? 13 年前 |
|
|
Yippie-Ki-Yay · 使用非托管代码中的托管COM对象 14 年前 |
|
|
Gilad · 关于C#与非托管C的互操作性的续篇++ 14 年前 |