将字符串转换为DWORD_PTR,将DWORD_PTR转换为字符串

时间:2014-05-12 14:25:18

标签: c++ winapi visual-c++

我有函数,其中参数是DWORD_PTR,我需要将字符串传递给此func(将字符串转换为DWORD_PTR)然后我需要在func中读取它(将DWORD_PTR转换为字符串)

std::string myStr = "some string";
myFunc(DWORD_PTR string)

我怎么能这样做?

P.S。让我们跳过诸如“为什么使用DWORD_PTR作为参数?”这样的问题?' 因为我需要它。

2 个答案:

答案 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;