0
#include <stdio.h>
#include <stdlib.h>
#include <winscard.h>
#include <wintypes.h>
int main(void){
SCARDCONTEXT hContext;
SCARDHANDLE hCard;
DWORD dwActiveProtocol;
LONG rv;
rv = SCardEstablishContext(SCARD_SCOPE_SYSTEM,NULL,NULL,&hContext);
rv = SCardConnect(hContext,"Reader X", SCARD_SHARE_SHARED,
SCARD_PROTOCOL_T0, &hCard, &dwActiveProtocol);
printf("Hello world!\n");
}
有這樣的錯誤:如何解決C程序中'未定義的引用'?
test.c:(.text+0x2e): undefined reference to `SCardEstablishContext'
test.c:(.text+0x5b): undefined reference to `SCardConnect'
xcollect2: error: ld returned 1 exit status
的功能都包含在「winscard.h」,但似乎我不能使用它們。
我不知道如何解決它。
你需要*鏈接*正確的庫? [檢查參考](https://msdn.microsoft.com/en-us/library/windows/desktop/aa379479(v = vs.85).aspx)。 –
哪個庫定義了這些函數?頭文件是'winscard.h',但頭文件只聲明函數;它沒有定義它們。某處有一個定義這些函數的庫或DLL。你需要指定它。也許用選項'-L/path/to/scard/lib -lscard'來指定目錄和庫名稱 - 我在猜測正確的名稱,但是你需要知道正確的名稱並使用它以及它的安裝位置並使用它。 –
明白了。非常感謝你, –