请教关于.net 2003编译提示“char (*)与“char *”的间接级别不同” 警告的问题
#include <stdio.h>
#include <stdlib.h>
#ifdef WIN32
#include <windows.h>
#else
#include <dlfcn.h>
#define __stdcall
#define LIB_NAME "./libMWGateway.so"
#endif
//////////////////////////////////////////////////////////////////////////
int (__stdcall *MongateConnect)(const char*, int, const char*, const char*);
void (__stdcall *MongateDisconnect)(int);
int (__stdcall *MongateTestConn)(int sock);
int (__stdcall *MongateCsSPSendSms)(int sock, const char* pszMobis, const char* pszMsg,
int iMobiCount,const char* pszSubPort,char* pszSN);
int (__stdcall *MongateCsGetSmsEx)(int sock, char strMsg[500][255]);
int (__stdcall *MongateCsGetStatusReportEx)(int sock, char *strMsg);
int (__stdcall *MGhexChrTosrcStr)(const char* srcMsg[255],char* retMsg[255]);
//////////////////////////////////////////////////////////////////////////
char* menu[] = {
"a - Send message", //发单向信息,单向网关接口使用
"b - Receive alarm message", //接收信息
"c - Receive status report",
"d - Test the connection",
"q - Quit",
NULL
};
//////////////////////////////////////////////////////////////////////////
int main(void)
{
int sock = 0;
int res = 0;
char selected = 0;
char **option = NULL;
void *handle = NULL;
char pszSN[500] = {0};
char strMsg[500][255] = {0};
char srcMsg[255] = {0};
char destMsg[255] = {0};
int i = 0;
printf("%s\n",pszSN);
#ifdef WIN32
handle = LoadLibrary("MWGateway.dll");
#else
handle = dlopen(LIB_NAME, RTLD_LAZY);
if (handle == NULL) {
printf("err: %s\n", dlerror());
puts("Program terminated!");
return 1;
}
#endif
#ifdef WIN32
MongateConnect = (void*)GetProcAddress(handle, "MongateConnect");
MongateCsSPSendSms = (void*)GetProcAddress(handle, "MongateCsSPSendSms");
MongateDisconnect = (void*)GetProcAddress(handle, "MongateDisconnect");
MongateTestConn = (void*)GetProcAddress(handle, "MongateTestConn");
MongateCsGetSmsEx = (void*)GetProcAddress(handle, "MongateCsGetSmsEx");
MongateCsGetStatusReportEx = (void*)GetProcAddress(handle, "MongateCsGetStatusReport");
MGhexChrTosrcStr = (void*)GetProcAddress(handle, "MGhexChrTosrcStr");
#else
MongateConnect = dlsym(handle, "MongateConnect");
MongateCsSPSendSms = dlsym(handle, "MongateCsSPSendSms");
MongateDisconnect = dlsym(handle, "MongateDisconnect");
MongateTestConn = dlsym(handle, "MongateTestConn");
MongateCsGetSmsEx = dlsym(handle, "MongateCsGetSmsEx");
MongateCsGetStatusReportEx = dlsym(handle, "MongateCsGetStatusReportEx");
MGhexChrTosrcStr = dlsym(handle, "MGhexChrTosrcStr");
#endif
puts("Waiting for connecting to the server......");
sock = MongateConnect("server1.montnets.com", 8018, "SZAEE", "362571");
if (sock < 1) {
printf("fail to connect to the server. Error Numbers is %d\n", sock);
return 1;
}
puts("connect to the server successfully!");
option = menu;
do {
while (*option) {
puts(*option);
option++;
}
printf("Please select an action:");
selected = getchar();
while (getchar() != '\n') ;//empty loop
switch (selected)
{
case 'a':
res = MongateCsSPSendSms(sock, "15989327101,13826559075", "English,中文", 2, "*", pszSN);
if ( res == 1) {
printf("报警 send success.SN is %s\n", pszSN);
} else {
printf("Send failed. Error Numbers is %d\n", res);
}
break;
case 'b':
res = MongateCsGetSmsEx(sock, srcMsg);
if (res == -1)
puts("Blank!");
else if (res == -101)
puts("Send time out!");
else if (res == -102)
puts("Send failed!");
else if (res == 0)
puts("There is 0 new sms.");
else if (res > 0) {
res = MGhexChrTosrcStr(srcMsg, destMsg);
for (i = 0; i < res; ++i) {
printf("%s\n", *destMsg);
}
}
break;
case 'c':
res = MongateCsGetStatusReportEx(sock, strMsg);
if (res == -1)
puts("Blank!");
else if (res == -101)
puts("Send time out!");
else if (res == -102)
puts("Send failed!");
else if (res == 0)
puts("There is 0 new sms.");
else
for (i = 0; i < res; ++i) {
printf("(%d): %s\n", i+1, strMsg[i]);
}
break;
case 'd':
res = MongateTestConn(sock);
if (res == 1)
printf("The connect is available!\n");
else if (res == -3)
printf("The connect is invalidation!\n");
else
printf("Connect time out!\n");
break;
case 'q':
puts("Good Bye! 再见!");
break;
default:
puts("Error choice! Or empty function. Please select again.");
break;
}
} while (selected != 'q');
if (sock)
MongateDisconnect(sock);
return 0;
}