我有函数,其中参数是DWORD_PTR,我需要将字符串传递给此func(将字符串转换为DWORD_PTR)然后我需要在func中读取它(将DWORD_PTR转换为字符串)
std::string myStr = "some string";
myFunc(DWORD_PTR string)
我怎么能这样做?
P.S。让我们跳过诸如“为什么使用DWORD_PTR作为参数?”这样的问题?' 因为我需要它。
答案 0 :(得分:3)
试试这个:
myFunc(DWORD_PTR data) {
std::string local_copy{ reinterpret_cast<char*>(data) };
}
std::string data = "some string";
myFunc( reinterpret_cast<DWORD_PTR>(data.c_str()) );
这些工作通过传输数据所在的地址,作为指针(并转换为DWORD ptr)。你可以用不同的方式来做,但你没有指定(例如,你可以传输std :: string的地址)。
P.S。让我们跳过诸如“为什么使用DWORD_PTR作为参数?”这样的问题?&#39;因为我需要它。
好的,我会跳过这个问题 - 但我认为问题的答案是&#34;因为你有x-y problem&#34; ......只是说&#39;。
答案 1 :(得分:0)
1.calling myFunc((DWORD_PTR)&myStr);
2.inside the function: std::string& str = *(std::string*)string;