RAPI简单说明及Sample Code

RAPI简单说明及Sample CodeRAPI 简单说明及 SampleCode 一 什么是 RAPIRAPI 用来通过 ActiveSync 来建立 PC 与 Device 的通信

大家好,欢迎来到IT知识分享网。

RAPI简单说明及Sample Code

一.什么是RAPI

         RAPI用来通过ActiveSync来建立PCDevice的通信。通过RAPI可以实现PC Device的控制和同步。

二.使用说明

         常用的RAPI包括File I/O的一些操作,以及获取系统信息的一些API

         在使用RAPI来建立PCDevice的连接的时候,需要首先调用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(L“D://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就可以了。

         我相信,使用WinCEStandard SDK也可以解决该问题,但是我并没有尝试。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/140060.html

(0)
上一篇 2025-05-30 22:00
下一篇 2025-05-30 22:10

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信