zoukankan      html  css  js  c++  java
  • WM6 Rapi 开发(二) Hello World

    很简单,记住几个要点就可以任意开发了:

    手机端:

    动态库里面的函数参数必须是这样的:DWORD cbInput, BYTE *pInput, DWORD *pcbOutput, BYTE **ppOutput, IRAPIStream *pIRAPIStream;类型最好不要改动,参数名倒无所谓;其中 cbInput 就传入缓冲区的长度,pInput 是传入缓冲区,pcbOutput 是传出缓冲区的长度,ppOutput 是传出缓冲区,pIRAPIStream 如果不是使用流模式的话,一些设为 NULL 就行了。

    添加 DEF 文件,并把输出函数添加进去。

    PC端:

    代码
        HRESULT hr;

        hr 
    = CeRapiInit();

        DWORD dwOut;
        PBYTE pOut;

        CString temp;
        hr 
    = CeRapiInvoke(_T("TestLib.dll"), _T("CeTest"), 0, NULL, &dwOut, &pOut, NULL, 0);
        
    if (hr == S_OK) {
            temp 
    = toWideString(pOut, dwOut);
        }
    else{
            temp.Format(_T(
    "Error:%u"), hr);
        }
        MessageBox(temp, _T(
    ""));

        CeRapiUninit();

    MOBILE:

    代码
    int CeTest(DWORD cbInput, BYTE *pInput, DWORD *pcbOutput, BYTE **ppOutput, IRAPIStream *pIRAPIStream){
        
    char* result = "Hello World!";
        
    int datalen = strlen(result);

        
    *ppOutput = (BYTE*)LocalAlloc(LPTR, datalen);
        
    if(*ppOutput){
            memset(
    *ppOutput, 0, datalen);
            memcpy(
    *ppOutput, result, datalen);
            
    *pcbOutput = datalen;
        }
    else{
            
    *pcbOutput = 0;
        }

        
    return 0;
    }

     源码下载:https://files.cnblogs.com/lyout/TestLib.rar

    版权声明 作者:夏荣全
    网站:http://www.lyout.com 邮箱:lyout(at)163.com
    扣扣:249775085
    本文版权归作者所有,转载请注明出处:http://www.cnblogs.com/lyout/
  • 相关阅读:
    shell中的for循环
    tty相关
    udev规则
    find中perm参数
    日志级别的选择:Debug、Info、Warn、Error还是Fatal
    云计算、云存储、大数据
    JSON数据解析(python3.4)
    38、友盟统计
    37、iamgeview 图层叠加
    36、imageview的坑
  • 原文地址:https://www.cnblogs.com/lyout/p/1694558.html
Copyright © 2011-2022 走看看