这是一个从注册表中得到串口信息的函数,可是我在调用的时候却不成功,不知道应该怎么用,下面列出了我调用的方法及报错的信息,请好朋友们帮我看看,指教以下吧,谢谢!
/* -------- 从注册表里搜寻安装的串口 -----------------------
Win2k/XP和Win98/Me的注册表值不同,所以用枚举
把串口名字写入一个ComboBox控件里
*/
void FindCommPort(CComboBox *pComboBox)
{
HKEY hKey; #ifdef _DEBUG
ASSERT( pComboBox != NULL );
pComboBox->AssertValid();
#endif if( ::RegOpenKeyEx( HKEY_LOCAL_MACHINE,
"Hardware\\DeviceMap\\SerialComm",
NULL,
KEY_READ,
&hKey) == ERROR_SUCCESS) // 打开串口注册表
{
int i=0;
char portName[256],commName[256];
DWORD dwLong,dwSize; while(1)
{
dwLong = dwSize = sizeof(portName);
if( ::RegEnumValue( hKey,
i,
portName,
&dwLong,
NULL,
NULL,
(PUCHAR)commName,
&dwSize ) == ERROR_NO_MORE_ITEMS ) // 枚举串口
break; pComboBox->AddString( commName ); // commName就是串口名字
i++;
} if( pComboBox->GetCount() == 0 )
{
::AfxMessageBox( "在HKEY_LOCAL_MACHINE:Hardware\\DeviceMap\\SerialComm里找不到串口!!!" );
}
RegCloseKey(hKey);
}
}在调用此函数的时候,我是这么写的,可是总是不通过,如下:CComboBox*  pComboBox=(CComboBox*)GetDlgItem(COMBO_INTEL_COMID);  
FindCommPort(pComboBox);以下为出错信息:YJTX_Para_Set_Dlg.obj : error LNK2001: unresolved external symbol "public: void __thiscall CYJTX_Para_Set_Dlg::FindCommPort(class CComboBox *)" (?FindCommPort@CYJTX_Para_Set_Dlg@@QAEXPAVCComboBox@@@Z)
Debug/Terminal.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.Terminal.exe - 2 error(s), 4 warning(s)