视频网站开发代码,wordpress 小程序哪个,鱼爪商标交易平台,深圳市网站开发RAPI简单说明及Sample Code
一#xff0e;什么是RAPI RAPI用来通过ActiveSync来建立PC与Device的通信。通过RAPI可以实现PC 对Device的控制和同步。
二#xff0e;使用说明 常用的RAPI包括File I/O的一些操作#xff0c;以及获取系统信息的一些API。 在使用RAPI来建立PC与…RAPI简单说明及Sample Code
一什么是RAPI RAPI用来通过ActiveSync来建立PC与Device的通信。通过RAPI可以实现PC 对Device的控制和同步。
二使用说明 常用的RAPI包括File I/O的一些操作以及获取系统信息的一些API。 在使用RAPI来建立PC与Device的连接的时候需要首先调用CeRapiInit()相应的在操作结束之后调用CeRapiUninit()来断开两者的连接。
三Sample Code 下面举一个简单的例子来说明RAPI的一个应用实例 PBYTE pBuffer NULL; HANDLE hFile, hPCFile; DWORD dwBytesReturned 0; DWORD dwFileSize 0; // Step1: initialize CeRapiInit(); hFile CeCreateFile(L//UserDisk//WinCE6.0 RAM Tool.exe, GENERIC_READ, 0, NULL, OPEN_EXISTING, 0, NULL); if (!hFile) { MessageBox(NULL, TEXT(Open file //UserDisk//WinCE6.0 RAM Tool.exe/n), NULL, MB_ICONERROR); } hPCFile CreateFile(LD://passion.guo, GENERIC_WRITE, FILE_SHARE_WRITE|FILE_SHARE_READ, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if (!hPCFile) { MessageBox(NULL, TEXT(Create file D://passion.guo failed/n), NULL, MB_ICONERROR); } dwFileSize CeGetFileSize(hFile, NULL); pBuffer new BYTE[dwFileSize]; if (!pBuffer) MessageBox(NULL, TEXT(Create buffer failed/n), NULL, MB_ICONERROR); // step2: copy data from device and write to pc if (!CeReadFile(hFile, pBuffer, dwFileSize, dwBytesReturned, NULL)) { MessageBox(NULL, TEXT(read file failed/n), NULL, MB_ICONERROR); } if (!WriteFile(hPCFile, pBuffer, dwFileSize, dwBytesReturned, NULL)) { MessageBox(NULL, TEXT(write file failed/n), NULL, MB_ICONERROR); } // step 3: Deinit if (hFile) CeCloseHandle(hFile); if (hPCFile) CloseHandle(hPCFile); MessageBox(NULL, TEXT(Test Over!!!!/n), NULL, MB_ICONERROR); // CeCopyFile(L//UserDisk//initobj.dat, L//UserDisk//bird.dat, false); CeRapiUninit(); 上述代码实现了将Device上的//UserDisk//WinCE6.0 RAM Tool.exe拷贝到D://passion.guo的功能。
四常见问题 编写RAPI的程序需要链接RAPI.lib但有的时候无法从本机上找到RAPI.lib可以安装Windows Mobile 6 Standard SDK Refresh.msi来解决该问题。 另外有的时候引用rapi.h会出现很多编译错误这个时候使用Windows Mobile 6 Standard SDK Refresh.msi中的rapi.h就可以了。 我相信使用WinCE的Standard SDK也可以解决该问题但是我并没有尝试。