未定义的RasDialA参考(包括ras.h)

时间:2012-06-29 17:26:17

标签: c windows header-files vpn ras

我阅读了微软的所有文档,但他们声称它应该可以在没有任何额外库的情况下运行。一小时的谷歌搜索没有结果。我的代码:

#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&amp; g ++中),但它们都导致了同样的错误。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

according documentationRasDial()用法的要求,Ras.h 标头,是Rasapi32.lib库。如果您的编译器可以使用它,请使用

上的-l选项将其传递给链接

<强> GCC

gcc foo.c -lRasapi32

编辑:感谢@Mark Wilkins,它为

提供了命令行

Microsoft编译器

cl foo.c rasapi32.lib