2012-06-11 39 views
1

这里SendPost()会向服务器发送HTTP GET请求。当我用它来编译这段代码时,它显示“错误C2275:'HINTERNET':非法使用这种类型作为表达式”。即使它显示错误,我也会在程序的开头添加“wininet.h”。发出HTTP请求时发生Visual C++编译错误

void SendPost(TCHAR *szName, TCHAR *szNumber, YACINFO *yi) 
{ 
TCHAR szText[128], szLogText[256], szFormat[256]; 
GetDateTimeString(szText, 128); 

LoadString(yi->hinst, IDS_INCOMING_CALL_HEADER, szFormat, 256); 
_snprintf(szLogText, 256, szFormat, szText); 

LoadString(yi->hinst, IDS_LOGFILE_NAME, szFormat, 256); 
_snprintf(szLogText, 256, szFormat, szName); 

LoadString(yi->hinst, IDS_LOGFILE_NUMBER, szFormat, 256); 
_snprintf(szLogText, 256, szFormat, szNumber); 

MessageBox(NULL,szNumber,"Status",MB_OK); 


HINTERNET hSession = InternetOpen("Utility", 0,NULL, NULL, 0); 
HINTERNET hOpenUrl = InternetOpenUrl(hSession,"http://www.ourwebsite.com/index.php?sender=123&&receiver=124&&msgdata=sample SMS today&&recvtime=01:12&&msgid=123458", NULL,0, 1, 1); 

if(hOpenUrl == NULL){ 
//invalid URL 
} 
InternetCloseHandle(hOpener); 
InternetCloseHandle(hSession); 
     MessageBox(NULL,"Request Send","Status",MB_OK); 


} 
+0

哪一行是编译错误? – Joe

+0

而且 - 它是否适用于更简单的URL?该URL中是否有某些内容会导致编译器混淆? – Joe

+0

以“HINTERNET hSession”开头的错误显示。它甚至不编译。 –

回答

0
HINTERNET hSession = InternetOpen("Utility", 0,NULL, NULL, 0); 
HINTERNET hOpenUrl = InternetOpenUrl(hSession,"http://www.ourwebsite.com/index.php?sender=123&&receiver=124&&msgdata=sample SMS today&&recvtime=01:12&&msgid=123458", NULL,0, 1, 1); 

if(hOpenUrl == NULL){ 
//invalid URL 
} 

InternetCloseHandle(hOpener); 
InternetCloseHandle(hSession); 
MessageBox(NULL,"Request Send","Status",MB_OK); 

我能成功编译此上VS2010。我猜这是代码格式问题(例如缺少大括号)或其他问题。

+0

它仍然无法正常工作。我正在使用VS2008。 –

+0

然后你在其他地方有问题。这也建立在2008年。我会在头文件中查找语法错误,可能缺少大括号或分号。 – Joe

相关问题