很奇怪,我在win32 console程序里PacketGetAdapterNames,可以正常读出网卡信息,可如果我在mfc exe程序的InitInstance()里使用PacketGetAdapterNames,却是返回错误, 这是为什么呢? 代码如下:
BOOL CNetcard_setupApp::InitInstance()
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif
CNetcard_setupDlg dlg;
m_pMainWnd = &dlg;
if(PacketGetAdapterNames((char *)adaptername,&adapterlength)==FALSE)
{
printf("PacketGetAdapterNames Error: %d\n",GetLastError());
return false;
}
BOOL CNetcard_setupApp::InitInstance()
{
AfxEnableControlContainer();
#ifdef _AFXDLL
Enable3dControls();
#else
Enable3dControlsStatic();
#endif
CNetcard_setupDlg dlg;
m_pMainWnd = &dlg;
if(PacketGetAdapterNames((char *)adaptername,&adapterlength)==FALSE)
{
printf("PacketGetAdapterNames Error: %d\n",GetLastError());
return false;
}
adaptername 和 adapterlength 初始化了没?
我记得以前我的解决办法是自己封装一下PacketXXX库,做成一个DLL让MFC程序调用的
代码如下:
WCHAR adaptername[8192];
ULONG adapterlength;为什么在mfc exe下PacketGetAdapterNames函数返回false呢?