c++中的GetModuleFileName函數的用法以及作用


參考:

1. http://blog.sina.com.cn/s/blog_b078a1cb0101fw48.html

2. https://www.cnblogs.com/Satu/p/8203936.html

函數原型:
DWORD GetModuleFileName(
HMODULE hModule,
LPTSTR lpFilename,
DWORD nSize
);
函數參數說明:
hModule HMODULE 裝載一個程序實例的句柄。如果該參數為NULL,該函數返回該當前應用程序全路徑。
lpFileName LPTSTR 是你存放返回的名字的內存塊的指針,是一個輸出參數
nSize DWORD ,裝載到緩沖區lpFileName的最大值
函數返回值:
如果返回為成功,將在lpFileName的緩沖區當中返回相應模塊的路徑,如果所設的nSize過小,那么返回僅按所設置緩沖區大小返回相應字符串內容。
如果函數失敗,返回值將為0,利用GetLastError可獲得異常代碼。
需要的頭文件為:
windows.h
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
關於GetModuleFileName function
參考:https://msdn.microsoft.com/en-us/library/windows/desktop/ms683197(v=vs.85).aspx
 
 
 
以下代碼摘自Installing a Service(https://msdn.microsoft.com/en-us/library/windows/desktop/ms683500(v=vs.85).aspx)。

IDE: Microsoft Visual Studio Community 2017 15.5.2

操作系統:Windows 7 x64

 

#include "stdafx.h"    /* IDE自行創建的 */

#include <windows.h>

int main(int argc, char **argv)
{
    TCHAR szPath[MAX_PATH];

    if (!GetModuleFileName(NULL, szPath, MAX_PATH))
    {
        printf("Cannot get the module file name, error: (%d) \n", GetLastError());
        return 1;
    }
    else {
        printf("Module file name: %ls \n", szPath);
    }

    getchar();

    return 0;
}

 

關於MAX_PATH,在頭文件minwindef.h中定義,但沒有給出具體的描述。

#define MAX_PATH          260


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM