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提供好多成员函数实现这个东西。
     
     
    来源:摘抄笔记
  • 相关阅读:
    C#多线程的简单理解
    CSS中图片水平垂直居中方法小结
    浅析JavaScript的prototype
    记kkpager分页控件的使用
    面试必问的 volatile
    观察者模式——从JDK到Spring
    Java 内存模型都不会,就敢在简历上写熟悉并发编程吗
    工厂模式,就这一篇搞定
    JVM解毒——类加载子系统
    JVM解毒——JVM与Java体系结构
  • 原文地址:https://www.cnblogs.com/no7dw/p/2238437.html
Copyright © 2011-2022 走看看