zoukankan      html  css  js  c++  java
  • dll return a string

    char g_szText[1024];

    __declspec(dllexport) const char * __stdcall FuncName(const unsigned char *p)
    {
    sprintf(g_szText, "this is %u !", (unsigned int) p[2]);
    return g_szText;
    }
    __declspec(dllexport)表示该函数要被输出,__stdcall表示参数传递方式,一般动态库都用这个,这个函数就是返回动态库中的一个全局变量的地址,当动态库被加载到你的程序中时,他也成了你程序的全局变量,不用担心内存问题。
    在你的程序中可以用
    __declspec(dllimport) const char * __stdcall FuncName(const unsigned char *p);声明一下就可以用了。
    另外,extern "C"也是需要的,但是如果你程序和DLL用的是一种语言一个编译器编的就无所谓了,并且__stdcall也是无所谓了。
    在VC中可以在动态库源码中这样写:
    char g_szText[1024];

    __declspec(dllexport) const char * __stdcall FuncName(const unsigned char *p)
    {
    sprintf(g_szText, "this is %u !", (unsigned int) p[2]);
    return g_szText;
    }
    __declspec(dllexport)表示该函数要被输出,__stdcall表示参数传递方式,一般动态库都用这个,这个函数就是返回动态库中的一个全局变量的地址,当动态库被加载到你的程序中时,他也成了你程序的全局变量,不用担心内存问题。
    在你的程序中可以用
    __declspec(dllimport) const char * __stdcall FuncName(const unsigned char *p);声明一下就可以用了。
    另外,extern "C"也是需要的,但是如果你程序和DLL用的是一种语言一个编译器编的就无所谓了,并且__stdcall也是无所谓了。

    char *szText = "dfsdfd";
    CString str(szText);就可以。另外,CString提供好多成员函数实现这个东西。
     
     
    来源:摘抄笔记
  • 相关阅读:
    iOS 改变同一个label中多行文字间的距离
    iOS改变UITableViewCell的分割线frame和颜色
    iOS动画实现改变frme和contenOffset
    iOS判断数组不为空
    jQueryMobile控件之ListView
    jQueryMobile控件之展开与合并
    jQueryMobile控件之页面切换
    jQueryMobile控件之按钮
    jQueryMobile控件之复选框
    jQueryUI 之控件们
  • 原文地址:https://www.cnblogs.com/no7dw/p/2238437.html
Copyright © 2011-2022 走看看