1

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

#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 documentation,对RasDial()使用的要求,也Ras.h 就是header,就是Rasapi32.lib库。如果这在您的编译器上可用,请使用-l选项将其传递给链接

海湾合作委员会

gcc foo.c -lRasapi32

编辑:感谢@Mark Wilkins,它提供了命令行

微软编译器

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