• 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/
  • 相关阅读:
    k8s之docker被屏蔽后下载方法
    代码合并工具Beyond Compare的使用技巧
    (转)设计模式——观察者模式
    notepad问题汇总
    个人构建问题
    内部git常用总结
    (转)动态规划算法—买卖股票的最佳时机系列
    (转)java中引用传递和值传递
    互联网面试题
    (转)UML类图与类的关系详解
  • 原文地址:https://www.cnblogs.com/lyout/p/1694558.html
Copyright © 2020-2023  润新知