这是函数的定义,在CWGetEthernetDoc类中static void call_back(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content);函数的实现
void CWGetEthernetDoc::call_back(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)
{
CaptureTime=ctime((const time_t*) &packet_header->ts.tv_sec);
}
变量CaptureTime在CWGetEthernetDoc类中定义,为publicchar *CaptureTime;因为这是一个静态函数,所以一编译就出现:
error C2597: illegal reference to data member 'CWGetEthernetDoc::CaptureTime' in a static member function
执行 cl.exe 时出错.该怎么解决。thunk技术我不会。。
void CWGetEthernetDoc::call_back(u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)
{
CaptureTime=ctime((const time_t*) &packet_header->ts.tv_sec);
}
变量CaptureTime在CWGetEthernetDoc类中定义,为publicchar *CaptureTime;因为这是一个静态函数,所以一编译就出现:
error C2597: illegal reference to data member 'CWGetEthernetDoc::CaptureTime' in a static member function
执行 cl.exe 时出错.该怎么解决。thunk技术我不会。。
void CWGetEthernetDoc::call_back(CWGetEthernetDoc& obj,u_char *argument, const struct pcap_pkthdr *packet_header, const u_char *packet_content)
{
obj.CaptureTime=ctime((const time_t*) &packet_header- >ts.tv_sec);
}
将CaptureTime设置为静态的变量好象行不通。
1楼
这个OBJ是新建的CWGetEthernetDoc还是原来初始化建立的实例?
如果是原来初始化时建立的实例,请问在那里找到实例名,我还算是新学VC。。
谢谢
要是单文档的程序,可以在函数里面得到这个Document
CMainFrame * pFrame = (CMainFrame*)theApp.GetMainWnd();
CXXXDoc * pDoc = pFrame->GetActiveView()->GetDocument();
有种方法可以帮你
向MainFrame发送消息。。然后通过它调用document来修改你说要改的那个值
如果不知道怎么操作再给你解决
我在静态函数CALL_BACK里面定义CMainFrame *pFrame;
结果报告说:
error C2065: 'CMainFrame' : undeclared identifier
error C2065: 'Frame' : undeclared identifier
warning C4552: '*' : operator has no effect; expected operator with side-effect
7楼的朋友说说怎么操作的。
我想在这个静态函数里面获得文档(DOC)的指针,因为我的大部分变量都是在DOC里面定义的,然后在这个静态函数里面要被操作,获得了DOC的指针,大部分问题都可以被解决掉了。谢谢不吝赐教