CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  C#

如何用C#调用VC创建的常规DLL函数?涉及到结构数组的传递!

楼主yanzheng1(光原)2004-12-04 10:33:07 在 .NET技术 / C# 提问

 
   
   
   
  VC中建立的函数  
   
   
                struct   AAA  
                {  
                      char   aa[20];  
                      char   bb[20];  
                      char   cc[20];  
                }  
   
      输出函数   第一种  
                  AAA   *   GetInfoA()  
                  {  
                            AAA   *   mm=new   AAA[5];  
                            strcpy(mm[0].aa,"12345")  
   
                            //..................  
   
                            return   mm;  
                  }  
   
      输出函数   第二种  
                  void   GetInfoB(AAA   *   mm)  
                  {  
                               
                            strcpy(mm[0].aa,"12345")  
                            //..................  
                  }  
   
  //----------------------------------------------------  
   
  C#中    
                struct   AAA  
                {  
                      string   aa;  
                      string   bb;  
                      string   cc;  
                }  
   
   
        [DllImport("xxx.dll",   EntryPoint="GetInfoA")]  
        public   static   extern   AAA   []   GetInfoA();  
   
   
        [DllImport("xxx.dll",   EntryPoint="GetInfoB")]  
        public   static   extern   void   GetInfoB(ref   AAA   []   mm);  
   
   
   
      问题:      
                一.   GetInfoA的调用:  
   
                          AAA   []   hh=   GetInfoA();       //出错,无法封送.  
                           
                二.   GetInfoB的调用:  
   
                          AAA   []     hh   =new   AA[5];        
                          GetInfoB(ref   hh);                 //也是出错  
   
              有没有办法解决这个问题,特别是自定义结构数组的输入输出?  
   
              遇到这样的问题,大侠们是怎么解决的?  
   
   
     
  );  
  问题点数:50、回复次数:8Top

1 楼yanzheng1(光原)回复于 2004-12-04 11:22:03 得分 0

dingTop

2 楼yanzheng1(光原)回复于 2004-12-04 11:44:27 得分 0

dingTop

3 楼zhouweihuaxf(bao xiong)回复于 2004-12-04 23:18:36 得分 30

这个问题我也不知道啊.Top

4 楼stepman(骆哈哈)回复于 2004-12-05 00:49:25 得分 0

upTop

5 楼yanzheng1(光原)回复于 2004-12-06 09:08:30 得分 0

dingTop

6 楼tear_pearl(tear_pearl)回复于 2004-12-06 10:28:33 得分 10

用intptr,  
  Marshal.PtrToStructure()  
  Marshal.StructureToPtr()  
   
  Top

7 楼missRainbowAgain(godness)回复于 2004-12-06 13:12:05 得分 10

up.....Top

8 楼yanzheng1(光原)回复于 2004-12-07 09:47:45 得分 0

dingTop

相关问题

  • vb 调用vc写的dll时,怎样传递数组参数
  • vb 调用vc写的dll时,怎样传递数组参数
  • vb调用vc编写的dll数组问题????????
  • ■■■菜鸟提问:vb调用c写的dll,如何传递二维数组、返回两个一维数组?■■■
  • 在VB中调用VC中的dll,得到一个数组,如何在VB中得到这个数组?
  • 在vb中调用vc做的dll,如何给dll传递数组变量?!
  • vb 中调用vc写的dll,如何传递字符串数组,,
  • 请教vb调用vc编写的DLL中传数组的问题
  • 急:请教vb调用vc编写的DLL时的二维数组问题
  • 调用vc做的dll的时候能不能传数组参数?在线等!

关键词

  • c#
  • 函数
  • dll
  • getinfoa
  • getinfob
  • 调用
  • aaa
  • aa
  • mm
  • hh

得分解答快速导航

  • 帖主:yanzheng1
  • zhouweihuaxf
  • tear_pearl
  • missRainbowAgain

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

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