C++ WinInet ftp连接错误123

C++ WinInet ftp连接错误123,c++,winapi,ftp,wininet,C++,Winapi,Ftp,Wininet,我正试图通过C++/WinInet连接到我的ftp服务器,但我一直收到错误123 error\u INVALID\u NAME。谷歌研究称,这个错误是由错误的服务器地址引起的,但我的地址是有效的,与我的用户名和密码相同。这是我的密码: void FileSubmit(LPCWSTR addr, LPCWSTR login, LPCWSTR pass, LPCWSTR pcFile, LPCWSTR ftpFile) { HINTERNET hInternet; HINTERNET

我正试图通过C++/WinInet连接到我的ftp服务器,但我一直收到错误123 error\u INVALID\u NAME。谷歌研究称,这个错误是由错误的服务器地址引起的,但我的地址是有效的,与我的用户名和密码相同。这是我的密码:

void FileSubmit(LPCWSTR addr, LPCWSTR login, LPCWSTR pass, LPCWSTR pcFile, LPCWSTR ftpFile)
{
    HINTERNET hInternet;
    HINTERNET hFtpSession;
    hInternet = InternetOpen(NULL, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, NULL);
    if (hInternet == NULL)
    {
        cout << "Error: " << GetLastError();
    }
    else
    {
        cout<<"Connecting to :"<<(char*)login<<" @ "<<(char*)addr<<", to upload file from PC: "<<(char*)pcFile<<" as "<<(char*)ftpFile<<endl;
        hFtpSession = InternetConnect(hInternet, addr, INTERNET_DEFAULT_FTP_PORT, 
                    login, pass, INTERNET_SERVICE_FTP, NULL, NULL);
        if (hFtpSession == NULL)
        {
            cout<<"FTPSESSION ERROR!\n";
            cout << "Error: " << GetLastError();
        }
        else
        {
            cout<<"hFTPsession successfull!\n";
            if (!FtpPutFile(hFtpSession, pcFile, ftpFile, FTP_TRANSFER_TYPE_BINARY, 0))
            {
                cout << "Error: " << GetLastError();
            }
            else
                cout<<"FILE "<<(char*)pcFile<<" HAS BEEN SUCCESSFULLY UPLOADED AS "<<(char*)ftpFile<<"!\n";
        }
    }
}

有谁能帮我一下,告诉我为什么InternetConnect返回123 ERROR\u INVALID\u NAME?

从const char*到const wchar*的类型转换是错误的。传递宽字符串文本,例如Lftp.ibieda.cpl.pl或使用MultiByteToWideChar函数。

我在InternetConnect上使用了一个在过去运行良好的程序,出现了错误123。我的问题是我创建的新项目被设置为使用UNICODE。改变了这一点,一切又恢复正常。

ftp.server.x对我来说听起来不是一个有效的域名。@JonathanPotter这只是一个例子。调试器怎么说?也许您从char字符串重新键入到LPCWSTR是万恶之源。重构您的代码,然后再试一次。@Xearinox是的,使用Laddress而不是lpcwdress成功了!谢谢
FileSubmit((LPCWSTR)"ftp.ibieda.cba.pl",(LPCWSTR)"login",
               (LPCWSTR)"pass",(LPCWSTR)"C:\\file.txt",(LPCWSTR)"\\file.txt");