CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  ActiveX/COM/DCOM

返回char数组

楼主haiqian119(海嵌)2005-09-27 10:40:55 在 C++ Builder / ActiveX/COM/DCOM 提问

谁的dll中有返回char数组的部分代码参考一下 问题点数:30、回复次数:4Top

1 楼xrdsheng(旭日东升)回复于 2005-09-27 12:42:02 得分 25

返回char数组最好不要在函数里面分配空间,这样不利于内存空间释放。  
  可以  
  char   *func(char   *str,int   len)  
  {  
          ...//处理str数组  
          return   str;  
  }  
   
  int   main()  
  {  
  char   p[100];  
  char   *result;  
  result   =   func(p,100);  
  }Top

2 楼haiqian119(海嵌)回复于 2005-09-27 16:30:01 得分 0

//函数入口函数  
  char   str[15];  
  extern   "C"   __declspec(dllexport)   __stdcall   char   WimDev_DataType(int   VehicleID)     //取指定序号车辆的轴型  
  {  
                  memcpy(str,FormMain.DataType(VehicleID),15);  
                  return   *str;  
  }  
  //调用的类  
  struct   S_MESSAGE             //信息  
  {  
                  bool   flag;  
                  int   data_length;       //数据桢长  
                  struct   CARTIME   car_time;  
                  long   car_speed;       //速度  
                  int     car_Aa;           //加速度  
                  int   car_Count;       //轴数  
                  int   car_ZZS;             //轴组数  
                  int   car_Width;         //总重  
                  char   car_type[15];  
  };  
  class   TFormMain  
  {  
  public:  
                struct   S_MESSAGE   RecvData[10];  
                  char*   DataType(int   VehicleID);                       //取指定序号车辆的轴型  
  }  
  extern   TFormMain   FormMain;  
  //CPP  
  char*   TFormMain::DataType(int   VehicleID)                       //取指定序号车辆的轴型  
  {  
                  if((VehicleID   >   0)&&(VehicleID   <   carNum+1))  
                            return   RecvData[VehicleID].car_type;  
                  else   return   NULL;  
  }    
  可是调用的时候就是提示错误!写成char*   WimDev_DataType(int   VehicleID)竟然执行通不过!  
  不知道该怎么办?Top

3 楼kprzen(小康)回复于 2005-09-27 16:42:52 得分 5

UPTop

4 楼haiqian119(海嵌)回复于 2005-09-28 11:32:46 得分 0

//dll入口函数  
  char   str[15];extern   "C"   __declspec(dllexport)   char*   /*__stdcall*/   WINAPI   WimDev_DataType(int   VehicleID)    
  {  
                  char   *   pStr;  
                  pStr   =   FormMain.DataType(VehicleID);  
                  if(   pStr   ==   NULL   )             return       NULL;  
                  else  
                  {  
                        memcpy(&str,pStr,15);  
                        return   str;  
                    }  
  }  
  谢谢网友的支持与解疑!Top

相关问题

  • 数组的返回
  • char 数组问题
  • 急 ,立刻给分,在VC ATL里如何返回一个 unsigned char 的数组。
  • 如何定义一个返回指向char型数组的指针?
  • 如何返回数组?
  • 如何返回数组
  • byte数组 与 char数组 互相转换问题?
  • 怎样转换2维char数组为 CString 数组?
  • 在C++里怎么把char数组转换成byte数组
  • __wchar_t型的数组ch1[]和char型的数组ch2[]互换~~

关键词

  • 函数
  • vehicleid
  • tformmain
  • car
  • datatype
  • 返回char数组
  • 取指定序号车辆
  • 轴型
  • str
  • struct

得分解答快速导航

  • 帖主:haiqian119
  • xrdsheng
  • kprzen

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo