在我的 MFC ActiveX 程序中,有一个 dll 文件提供的函数调用。并且函数中有一个struct类型参数。我遇到的奇怪的事情是调用函数后,struct中的数据不完整。我是 ActiveX 和 DLL 的新手,真的无法理解这是怎么发生的……主要代码如下:
结构体的定义:
typedef struct{
WORD m_protocol;
WORD m_playstart;
...
char url[128];
char username[MAX_USER_NAME_LEN+1];
char password[MAX_PASSWORD_LEN+1];
}CHANNEL_CLIENTINFO;
ActiveX 代码:
CHANNEL_CLIENTINFO channelInfo;
...
...
GSNET_ClientStart(&channelInfo);
dll代码:
GSNET_ClientStart(CHANNEL_CLIENTINFO *m_pChaninfo)
{
...
...
}
谁能帮我?谢谢大家。
更多细节:
在 ActiveX 程序中,在调用 GSNET_ClientStart 之前,我用一些日期初始化结构。如“网址”:
sprintf(channelInfo.url, "192.168.121.122");
调用后,在 dll 函数 GSNET_ClientStart 中,我得到了 url,原来是“168.121.122”,即“192”。不见了。
我可以确保我没有在基本语法上犯任何错误。