一個項目開發到維護有五年時間了。
今天在項目中加入了一段代碼后,軟件啟動后,窗口顯示不出來了。
加入的代碼:
HMODULE hDll_kernel32 = LoadLibrary("kernel32.dll"); // 加載 kernel32.dll if(hDll_kernel32) { FARPROC proc = GetProcAddress(hDll_kernel32, "SetDllDirectoryA"); //導出 DLL 庫函數地址 if(proc) { //printf("在 kernel32.dll 找到 SetDllDirectoryA() \n"); typedef BOOL (*func_SetDllDirectoryA)(LPCSTR); func_SetDllDirectoryA _SetDllDirectoryA = (func_SetDllDirectoryA)proc; //函數指針 int status = _SetDllDirectoryA(app_folder_path); //將目錄添加到用於查找應用程序DLL的搜索路徑 printf("_SetDllDirectoryA()->status:%d\n", status); } FreeLibrary(hDll_kernel32); //釋放 hDll_kernel32 = NULL; }
取消 -O2 選項后,就可以正常啟動軟件。
這段代碼有毒?