• 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提供好多成员函数实现这个东西。
     
     
    来源:摘抄笔记
  • 相关阅读:
    实验二
    2
    DS博客作业08--课程总结
    DS博客作业07--查找
    DS博客作业06--图
    DS博客园作业05--树
    有向图强连通分量Tarjan算法
    nyoj 题目737 合并石子(一)
    nyoj 题目61 传纸条
    nyoj 题目49 开心的小明
  • 原文地址:https://www.cnblogs.com/no7dw/p/2238437.html
Copyright © 2020-2023  润新知