注册 登录
编程论坛 C++教室

请高手帮忙,应该如何写,才能正确传出 "AAAAA","BBBBB"

发布于 2010-05-11 12:09, 630 次点击
////============================================================通过编译
#define WIN32_LEAN_AND_MEAN  
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include   "time.h"   

#ifdef MYLIBAPI_C
#else
#define MYLIBAPI_C extern "C" __declspec(dllexport)
#endif

char  *zz=new char [200] ;
char  yy0[100];//
char  yy1[100];//
char  yy[100];//
//111----Get0----------------------------------------------------------------------------------
MYLIBAPI_C int __stdcall Set0(char *xx,int vv)//传入____ xx[0]={"AAAAA"} ;
{
    strcpy(yy0,xx);//
    printf("Get takes \"%s\"\n",xx);
    return(vv);//
}               
MYLIBAPI_C char* __stdcall Get0()// 传出____ xx[0]={"AAAAA"} ;---正确
{
    printf("Get takes \"%s\"\n",yy0);
    return(yy0);//
}               

//222---Get1-----------------------------------------------------------------------------------
MYLIBAPI_C int __stdcall Set1(char *xx,int vv)//传入____ xx[1]={"BBBBB"} ;
{
    strcpy(yy1,xx);//
    printf("Get takes \"%s\"\n",xx);
    return(vv);//
}               
MYLIBAPI_C char* __stdcall Get1()// 传出____ xx[1]={"BBBBB"} ;---正确   
{
    printf("Get takes \"%s\"\n",yy1);
    return(yy1);//
}               

//333----Get0 + Get1------------------------------------------------------------------------------------
MYLIBAPI_C char* __stdcall Get01()//xx[0]+[1]传出____ {"AAAAA","BBBBB"} ;---正确   
{
     strcat(yy0,yy1);//
    printf("Get takes \"%s\"\n",yy0);
    return(yy0);//
}               


//444---Get-------------------------------------------------------------------------
MYLIBAPI_C int __stdcall Set(char *xx,int vv)//传入_____ xx[]={"AAAAA","BBBBB"} ;
{
    zz=xx;
    printf("Get takes \"%s\"\n",xx);
    return(vv);//
}               
MYLIBAPI_C char* __stdcall Get() //传出____ "(空)" ;显示不正确,应该如何写,才能正确传出 "AAAAA","BBBBB"   
{
    printf("Get takes \"%s\"\n",zz);
    return(zz);//
}               
//================DLL CCC===========================================通过编译

4 回复
#2
南国利剑2010-05-11 13:03
请楼主直接说明你要实现的功能吧。
#3
2010-05-11 13:16
回复 2楼 南国利剑
谢谢您的关注;

曾经有老师提示:若需要从DLL传回变量,使用指针变量(事先分配好空间或在DLL中分配空间)。zz要在DLL中分配空间,并且用逐个字母复制的办法(或复制内存的办法)才行。

我想传入一个xx[]={"AAAAA","BBBBB".........}到DLL中 ; 然后再传出,xx[]={"AAAAA","BBBBB".........},我已分配空间,但我不会"逐个字母复制"???
我想要的结果是:Get能回传出:{"AAAAA","BBBBB".........}



[ 本帖最后由 hz123 于 2010-5-11 13:18 编辑 ]
#4
2010-05-11 13:46
嘿嘿…看看你
#5
2010-05-14 16:57
回复 4楼 回忆不是我的
您也可帮帮忙啊?
1