2016-03-19 155 views
-2

我正在編寫一個使用SendInput()函數來模擬擊鍵的C程序。但是,編譯時出現以下錯誤:error LNK2019: unresolved external symbol [email protected] referenced in function _main。我正在使用VisualStudio開發人員命令提示進行編譯。這裏是我的代碼:錯誤LNK2019:使用SendInput()時無法解析的外部符號()

#define WINVER 0x0500 
#include <stdio.h> 
#include <windows.h> 
#include <process.h> 

main() 
{ 
    FILE *fp; 
    fp = fopen("C:/invisible.vbs", "w"); 
    fprintf(fp, "CreateObject(「Wscript.Shell」).Run 「」」」 ^& WScript.Arguments(0) ^& 「」」」, 0, False"); 
    fclose(fp); 
    fp = fopen("C:/run1.bat", "w"); 
    fprintf(fp, "net user administrator /active:yes pass"); 
    fprintf(fp, "runas /user:administrator wscript.exe \"C:/invisible.vbs\" \"C:/run2.bat\""); 
    fclose(fp); 
    fp = fopen("C:/run2.bat", "w"); 
    fprintf(fp, "copy /y nul C:/test.txt >nul"); 
    fclose(fp); 
    system("run1.bat"); 
    INPUT ip; 
    ip.type = INPUT_KEYBOARD; 
    ip.ki.wScan = 0; 
    ip.ki.time = 0; 
    ip.ki.dwExtraInfo = 0; 
    ip.ki.wVk = 0x50; // p 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x41; // a 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x53; // s 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x53; // s 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.wVk = 0x0D; // enter 
    ip.ki.dwFlags = 0; 
    SendInput(1, &ip, sizeof(INPUT)); 
    ip.ki.dwFlags = KEYEVENTF_KEYUP; 
    SendInput(1, &ip, sizeof(INPUT)); 
    return 0; 
} 

是否有某個標題,我需要包括我失蹤,或者是否有我的代碼有問題?如果我錯過了一個標題,那是哪一個?任何幫助將不勝感激。

+0

有頭文件和庫,以及編譯和鏈接之間的差異。 – Olaf

回答

0

似乎SendInput需要鏈接到USER32.LIB

+0

如何鏈接到此庫?我嘗試使用'cl test.c/link use32.lib',但我又收到了一個錯誤:'LINK:致命錯誤LNK1181:無法打開輸入文件'use32.lib'' –

+0

那麼,你可以從學習如何使用你的編譯器開始和鏈接器,請參閱[microsoft網站](https://msdn.microsoft.com/en-us/library/610ecb4h.aspx)獲取想法。 – Joel

+0

我得到它的工作,我意識到我把use32.lib而不是user32.lib –

相關問題