求教,c#如何调用delphi编写的dll中的函数

求教,c#如何调用delphi编写的dll中的函数 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiBase/html/delphi_20061219114602118.html
如题;  
  由于工作需要用到c#,但是有写函数用c#太不习惯了,于是用delphi写,但是调用时出现了问题,开始以为是函数写错了,但是后来写了个最简单的showmessage也不行  
   
  delphi中  
        声明部分  
        procedure   Showmsg(mText:string);       cdecl;  
        定义部分  
        procedure   Showmsg(mText:string);       cdecl;  
        begin  
          ShowMessage(mText);//就随便测试下  
        end;  
        给出端口  
        exports  
            Showmsg;                     //编译生成Project2.dll  
   
  c#中  
        引用  
          [DllImport("Project2.dll")]    
          private   static   extern   string   Showmsg(string   mText);  
        随便放入一个按纽点击事件  
            Showmsg("afsdfas");  
        结果只show出了第一个字符   “a”  
   
        如果把delphi中的过程写成一个函数,那就show成了空的,没接收到入参  
   
  不知道应该怎样写,请高手指点  
         
 

仔细看一下有关教材,Delphi里的string类型与C里面的并不一样,  
  procedure   Showmsg(mText:pchar);       cdecl;  
  这样才可以  
   
   
 

但是c#里面好象没有pchar型,只有char型  
  试了一下不行,show出来的是乱码。。。

汗,我的意思是指在DELPHI里面要使用pchar   型......

或者干脆使用指针+长度   两个参数来传递.....

结贴

转载于:https://www.cnblogs.com/delphi2007/archive/2008/10/14/1310931.html

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:编程工作室 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值