BOOL CLhwyApp::InitInstance()
{
AfxGetModuleState()->m_dwVersion = 0x0601; 
if (!AfxSocketInit())
{
AfxMessageBox(IDP_SOCKETS_INIT_FAILED);
return FALSE;
}
 //////////////////////数据库相关
    CString sPath;
GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);//获取一个已装载模板的完整路径名称sPath   
函数GetModuleFileName的第一个参数为null,则在此处执行此函数有什莫用? 

解决方案 »

  1.   

    AfxGetModuleState()->m_dwVersion = 0x0601; 
    修改模块版本,因为DAO默认的版本只能访问access97,访问access2k时需要修改一下GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
    hModule:要获取文件名的模块句柄,null表示当前模块
      

  2.   

    换句话说,GetModuleFileName的第一个参数为NULL的话,会返回调用该函数的可执行文件的全路径。详细请看http://www.cnblogs.com/nacarat/archive/2007/12/06/985869.html
      

  3.   

    第2个参数 sPath.GetBufferSetLength(MAX_PATH+1)为何是这种形式,而不是 一个字符数组 或者 直接将sPath放在此处?
      

  4.   

    WINAPI DWORD GetModuleFileName( 
      HMODULE hModule,
      LPWSTR lpFilename, 
      DWORD nSize
    );
    lpFilename 
    [out] Pointer to a buffer that is filled in with the path and file name of the module.