FARPROC ProcAddr = GetProcAddressFARPROC是什么类型 
typedef int (FAR WINAPI *FARPROC)();
这定义是什么意思?
我想将返回值弄到一个long的变量里怎么弄?
HMODULE ModuleHandle= GetModuleHandleA
typedef void *HANDLE;
#define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
好像是个void *指针?  怎么它弄到一个变量里面?
unsigned long ModuleHandle1=*ModuleHandle;  这样怎么提示 无法从“HINSTANCE__”转换为“unsigned long”

解决方案 »

  1.   

    FARPROC是什么类型
    :函数指针typedef int (FAR WINAPI *FARPROC)();
    这定义是什么意思?
    :声明一个函数指针类型我想将返回值弄到一个long的变量里怎么弄?
    HMODULE ModuleHandle= GetModuleHandleA
    typedef void *HANDLE;
    #define DECLARE_HANDLE(name) struct name##__ { int unused; }; typedef struct name##__ *name
    好像是个void *指针?  怎么它弄到一个变量里面?
    unsigned long ModuleHandle1=*ModuleHandle;  这样怎么提示 无法从“HINSTANCE__”转换为“unsigned long”
    :直接强制转换
    unsigned long ModuleHandle1= (unsigned long )ModuleHandle;
      

  2.   

    unsigned long ModuleHandle1=(unsigned long)*ModuleHandle;
    一样不行啊
      

  3.   

    unsigned long ModuleHandle1= (unsigned long )ModuleHandle;  这样转换可以是可以 这个是把地址直接转换了 没有把地址指向的内容进行转换
      

  4.   

    unsigned long ModuleHandle1 = reinterpret_cast<unsigned long>(*ModuleHandle);
      

  5.   

    typedef HINSTANCE HMODULE; 
    typedef HANDLE HINSTANCE; typedef PVOID HANDLE; typedef void *PVOID; 
      

  6.   

    HANDLE不一定是一个地址的,一般不能当地址使用。如果你一定要转换的话也是可以的。
    unsigned long ModuleHandle1=*(unsigned long*)ModuleHandle; 
      

  7.   

    ModuleHandle 里面放的是个地址  unsigned long ModuleHandle1= (unsigned long )ModuleHandle 这样子 就把地址转换了   并不是把指向地址里的数据进行转换
      

  8.   

    谁告诉你ModuleHandle里面一定是一个地址的?