1

私は Microsoft のドキュメントをすべて読みましたが、Microsoft の主張は、追加のライブラリがなくても動作するはずだというものです。1 時間のグーグル検索では結果が得られませんでした。私のコード:

#include <windows.h>
#include <ras.h>

int main()
{
    char* szPhoneNumberToDial = "127.0.0.1";
    char* szUserName = "test";
    char* szPassword = "test";
    RASDIALPARAMS rdParams;
    rdParams.dwSize = sizeof(RASDIALPARAMS);
    rdParams.szEntryName[0] = '\0';
    lstrcpy(rdParams.szPhoneNumber, szPhoneNumberToDial);
    rdParams.szCallbackNumber[0] = '\0';
    lstrcpy( rdParams.szUserName, szUserName );
    lstrcpy( rdParams.szPassword, szPassword );
    rdParams.szDomain[0] = '\0';

    HRASCONN hRasConn = NULL;
    DWORD dwRet = RasDial(NULL, NULL, &rdParams, 0L, NULL, &hRasConn);
}

エラー:

undefined reference to 'RasDialA@24'

C と C++ の両方の実装 (VC++ 2010 と MinGW/gcc & g++ の両方) を試しましたが、どちらも同じエラーが発生しました。

何か案は?

4

1 に答える 1

2

according documentationRasDial()、使用するための要件、Ras.h ヘッダーも、Rasapi32.libライブラリです。これがコンパイラで利用可能な-l場合は、オプション onを使用してリンクに渡します。

gcc :

gcc foo.c -lRasapi32

編集:コマンドラインを提供してくれた@Mark Wilkinsに感謝します

マイクロソフト コンパイラ:

cl foo.c rasapi32.lib
于 2012-06-29T17:48:32.393 に答える