这里我指的是LocalIp std :: string。有没有办法转换? 当我使用它时,我收到以下错误
无法从' const char *'转换参数1 to' const wchar_t *' + windows phone运行时组件
property String^ LocalIp;
LocalIp = ref new String(_aLNetworkAdapterInfo->_localIp.c_str());
std::string _localIp;
答案 0 :(得分:1)
对于此转化,您可以使用marshal_as
:
auto localIp = msclr::interop::marshal_as<String^>(_aLNetworkAdapterInfo->_localIp);
这需要:
#include <msclr/marshal_cppstd.h>
请查看the docs了解详情。
答案 1 :(得分:1)
如果要与WinRT Platform::String^
进行互操作,则应使用std::string
。如果您确实需要WideCharToMultiByte
,那么您可以使用var SpecialArray = function () {
var keys = Object.create(null),
objs = [];
this.push = function (obj) {
for (var key in obj) {
if (obj.hasOwnProperty(key)) {
keys[key] = true;
}
};
objs.push(obj);
return this;
};
this.toArray = function () {
objs.forEach(function (current) {
for (var key in keys) {
if (current[key] === undefined) {
current[key] = '';
}
}
});
return objs;
};
};
var obj1 = {
a: 'hello',
b: 'hello'
};
var obj2 = {
a: 'hello',
b: 'hello',
c: 'hola'
};
var f = new SpecialArray;
console.log(f.push(obj1).push(obj2).toArray());
进行转化。