C ++将HMODULE转换为两个整数

时间:2014-11-17 17:45:57

标签: c++

我有一个调用LoadLibrary的x64应用程序,我必须将生成的HMODULE作为2个整数传递给不同的应用程序。

我想将它转换为字符串,并将其子串到两部分,然后将结果转换为整数。

我无法将其变成字符串,你能帮忙吗?

由于

2 个答案:

答案 0 :(得分:1)

猜测应用程序需要64位句柄的上部和下部 - 我不确定句柄是64位机器上的64位

uint left = (hmodule & 0XFFFFFFFF00000000) >> 32;
uint right = (hmodule & 0XFFFFFFFF);

如果句柄是32位

   uint left = (hmodule & 0XFFFF0000) >> 16;
    uint right = (hmodule & 0XFFFF);

确保转换为字符串等无法正常工作

答案 1 :(得分:1)

最终我所做的是使用具有“HighPart”和“LowPart”的ULARGE_INTEGER struct,如下所示:

ULARGE_INTEGER long_address;
long_address.QuadPart = (ULONGLONG)address;
fprintf(file, "%d,%d", long_address.HighPart, long_address.LowPart);