如何解决将LPTHREAD_START_ROUTINE转换为int
|| 我正在使用C ++代码库,其中包含如下几行:CreateThread(NULL,MyThreadMethod,NULL,NULL);
我想将“ 1”的值写入调试输出。 (我想这是一个十六进制的地址)。
MyThreadMethod
的类型为LPTHREAD_START_ROUTINE
。我已经有一个名为OutputDebugInt
的方法,该方法可以编写一个int
来调试输出。当我编译行
OutputDebugInt(MyThreadMethod);
然后编译器发出错误
无法将参数1从unsigned long (__stdcall *)(void *)
转换为int
。
那么有没有办法将LPTHREAD_START_ROUTINE
转换成int
(或其他可以写入调试输出的东西)?
解决方法
std::basic_ostringstream<TCHAR> ss;
ss << static_cast<void*>(&MyThreadMethod);
::OutputDebugString(ss.str().c_str());
在32位平台(而不是64位平台)上可以转换为platforms5ѭ,因此我会坚持创建一个字符串。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。