wince下在机器上装载虚拟串口驱动失败的问题!

windboy121   2009-5-25 11:05 楼主
在模拟器下,装载成功,在真实机器上总是报错,DW代码为2,翻译出来是:系统找不到指定的文件!
以下是我的代码,请大虾们过目:
        LONG retVal = 0;
        TCHAR szDevKey[MAX_PATH]={0};
        wsprintf(szDevKey,_T("Drivers\\myvircom\\simcom%d"),uPort);
        TCHAR szDllName[]=GPS_SIMCOMDLL;
        TCHAR szPrefix[]=_T("COM");
        TCHAR szFriendlyName[50];
        wsprintf(szFriendlyName,_T("COM%u myvircom"),uPort);
        DWORD dwIndex=uPort;
        DWORD dwOrder=0;
        DWORD dwDeviceIndex=uPort;
        HKEY hKey;
        //Open the registry key and and these values
        if(ERROR_SUCCESS!=RegCreateKeyEx(HKEY_LOCAL_MACHINE,szDevKey,0,NULL,
                        0,KEY_ALL_ACCESS,NULL,&hKey,NULL))
        {
                m_strerror=CString("生成:")+szDevKey+_T("失败!");
                return FALSE;
        }
        RegSetValueEx(hKey,_T("DeviceArrayIndex"),0,REG_DWORD,(PBYTE)&dwDeviceIndex,sizeof(DWORD));
        //Create the key specifying the Prefix
    RegSetValueEx(hKey,_T("Prefix"),0,REG_SZ,(const BYTE*)szPrefix,sizeof(szPrefix));
        //Create the key specifying the dll name
        if(ERROR_SUCCESS!=RegSetValueEx(hKey,_T("Dll"),0,REG_SZ,(const BYTE*)szDllName,
                sizeof(szDllName)))
        {
                m_strerror=CString("生成:")+szDevKey+_T("Dll失败!");
                return FALSE;
        }
        RegSetValueEx(hKey,_T("Order"),0,REG_DWORD,(LPBYTE)&dwOrder,sizeof(DWORD));
        RegSetValueEx(hKey,_T("Index"),0,REG_DWORD,(LPBYTE)&dwIndex,sizeof(DWORD));
        //Create the key specifying the FriendlyName
    RegSetValueEx(hKey,_T("FriendlyName"),0,REG_SZ,(const BYTE*)szFriendlyName,sizeof(szFriendlyName));
        RegCloseKey(hKey);
        m_hHandleGiveAway=ActivateDeviceEx(szDevKey,NULL,0,NULL);
        DWORD dw = ::GetLastError();

回复评论 (4)

LZ,你的驱动是针对此设备的吗?
点赞  2009-5-25 11:34
你可能说到点子上了,在DeviceEmulator的ARM模拟器上,EVC用(WCE ARMV4I Release)编译后自动更新上去没有报警告,
在更新到机器上时却提示:The targeted platform ce5 does not match the connnected
platform.Continue? 确认进去后,程序可以执行,但DLL却出现上述错误,可能跟平台有关,
但我不知道机器要用什么SDK,同样是ARM的CPU啊?
点赞  2009-5-25 11:56
自已顶一下,高分也没人接啊?
点赞  2009-5-26 09:07
  其实这个警告不是很重要,最终原因是我的DLL中def文件定义的LIBRARY名称与文件名称不一致造成的,至于在模拟器中没问题
就不知道了!
点赞  2009-5-26 14:32
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复