自己写的DLL,在MFC应用程序里调用时出现下面的错误:
typedef wstring(*pFun)(void); 
HINSTANCE hInstanceDll = LoadLibrary(_T("Win32Dll1009.dll")) 成功,
pFun pProc = (pFun)GetProcAddress(hInstanceDll, "GetSerialNumberDll") 也成功,可是在调用pProc()时出错“invalid null pointer”是哪里错了呢?

解决方案 »

  1.   

    pFun pProc = (pFun)GetProcAddress(hInstanceDll, "GetSerialNumberDll") 也成功//
    //到底成功没?
      

  2.   

    GetProcAddress 返回失败了。1. 确定hInstanceDll 非零。
    2. 确认GetSerialNumberDll 函数是否被Win32Dll1009.dll导出。3. 看GetLastError的值是什么
      

  3.   

    typedef wstring(*pFun)(void);  最好不要返回字符串,在参数里返回
      

  4.   

    DLL里面运行到这句的时候闪了一下看不见什么错误
    HRESULT hResInitSec = CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_DEFAULT,RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, NULL); 
    然后hResInitSec等于S_OK
      

  5.   

    DLL里返回的值正常,一在应用程序里调用就出错