Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从C#字符串转换为C++;wchar_t[非托管] 我正在研究一个WrRT应用程序,其中我需要把设备ID从C++类传递给C++对象。ID的格式为: \\?\SWD#MMDEVAPI#{0.0.0.00000000}.{572cb138-dda1-4723-90d7-373f04b795fb}#{e6327cad-dcec-4949-ae8a-991e976a79d2} 这在C++中很好,如果我把它写成: L"\\\\?\\SWD#MMDEVAPI#{0.0.0.00000000}.{572cb138-dda1-4723-90d7-373f04b795fb}#{e6327cad-dcec-4949-ae8a-991e976a79d2}" 不过,如果我把它从C类传递到C++,并把它作为LPCWSTR来处理,它就不起作用了。_C#_C++_Windows Runtime - Fatal编程技术网

从C#字符串转换为C++;wchar_t[非托管] 我正在研究一个WrRT应用程序,其中我需要把设备ID从C++类传递给C++对象。ID的格式为: \\?\SWD#MMDEVAPI#{0.0.0.00000000}.{572cb138-dda1-4723-90d7-373f04b795fb}#{e6327cad-dcec-4949-ae8a-991e976a79d2} 这在C++中很好,如果我把它写成: L"\\\\?\\SWD#MMDEVAPI#{0.0.0.00000000}.{572cb138-dda1-4723-90d7-373f04b795fb}#{e6327cad-dcec-4949-ae8a-991e976a79d2}" 不过,如果我把它从C类传递到C++,并把它作为LPCWSTR来处理,它就不起作用了。

从C#字符串转换为C++;wchar_t[非托管] 我正在研究一个WrRT应用程序,其中我需要把设备ID从C++类传递给C++对象。ID的格式为: \\?\SWD#MMDEVAPI#{0.0.0.00000000}.{572cb138-dda1-4723-90d7-373f04b795fb}#{e6327cad-dcec-4949-ae8a-991e976a79d2} 这在C++中很好,如果我把它写成: L"\\\\?\\SWD#MMDEVAPI#{0.0.0.00000000}.{572cb138-dda1-4723-90d7-373f04b795fb}#{e6327cad-dcec-4949-ae8a-991e976a79d2}" 不过,如果我把它从C类传递到C++,并把它作为LPCWSTR来处理,它就不起作用了。,c#,c++,windows-runtime,C#,C++,Windows Runtime,C++代码: UniversalAudioPlayer::UniversalAudioPlayer(String^ deviceID) { HRESULT hr = XAudio2Create(&xAudio); if (FAILED(hr)) ref new COMException(hr, "XAudio2Create failure"); XAUDIO2_DEBUG_CONFIGURATION debugConfig = { 0 }; debugConfig.Trace

C++代码:

UniversalAudioPlayer::UniversalAudioPlayer(String^ deviceID)
{
HRESULT hr = XAudio2Create(&xAudio);

if (FAILED(hr))
    ref new COMException(hr, "XAudio2Create failure");

XAUDIO2_DEBUG_CONFIGURATION debugConfig = { 0 };
debugConfig.TraceMask = XAUDIO2_LOG_DETAIL | XAUDIO2_LOG_WARNINGS;
xAudio->SetDebugConfiguration(&debugConfig);

hr = xAudio->CreateMasteringVoice(&masteringVoice, 0U, 0U, 0U, (LPCWSTR)deviceID);

if (FAILED(hr))
    ref new COMException(hr, "Could not create mastdsdering voice");

xAudio->StartEngine();
}
UniversalAudioPlayer player = new UniversalAudioPlayer("\\\\?\\SWD#MMDEVAPI#{0.0.0.00000000}.{41a5b8e4-ad46-4bcb-b8a0-3621edafd176}#{e6327cad-dcec-4949-ae8a-991e976a79d2}");
C#代码:

UniversalAudioPlayer::UniversalAudioPlayer(String^ deviceID)
{
HRESULT hr = XAudio2Create(&xAudio);

if (FAILED(hr))
    ref new COMException(hr, "XAudio2Create failure");

XAUDIO2_DEBUG_CONFIGURATION debugConfig = { 0 };
debugConfig.TraceMask = XAUDIO2_LOG_DETAIL | XAUDIO2_LOG_WARNINGS;
xAudio->SetDebugConfiguration(&debugConfig);

hr = xAudio->CreateMasteringVoice(&masteringVoice, 0U, 0U, 0U, (LPCWSTR)deviceID);

if (FAILED(hr))
    ref new COMException(hr, "Could not create mastdsdering voice");

xAudio->StartEngine();
}
UniversalAudioPlayer player = new UniversalAudioPlayer("\\\\?\\SWD#MMDEVAPI#{0.0.0.00000000}.{41a5b8e4-ad46-4bcb-b8a0-3621edafd176}#{e6327cad-dcec-4949-ae8a-991e976a79d2}");
我无法包括

#include < vcclr.h >
#包括
< C++类中的P>,或者WinRT不支持托管程序集。

请给我建议解决办法。提前感谢。

您可以使用String::方法将^


有一个好办法,我已经试过了。我不能包括在内。可能是相关的。请添加您的代码,以便更清楚地了解您要执行的操作。@WiredPairie这是我要将szDeviceId从我的C#class传递到的方法。好吧--您编写了哪些不起作用的代码?您如何尝试从一个字符串转换为另一个字符串?您正在使用钉扎、
封送
等吗?非常感谢。没想到解决办法会这么简单。把我从大麻烦中救了出来。