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/
  • 相关阅读:
    小X的密码破译
    小X的加法难题
    足球联赛
    机器分配
    化装晚会
    Soundex编码
    迷之阶梯
    使用JMeter做压力测试
    SCOI 2010 序列操作
    动态求区间K大值(权值线段树)
  • 原文地址:https://www.cnblogs.com/lyout/p/1694558.html
Copyright © 2011-2022 走看看