C#winform程序调用delphi问题

swsw1 2008-07-14 12:49:01
一delphi dll中有如下函数
function Cls(Clip: PRect = nil): integer; stdcall; external 'cts4r.dll'; //清屏

我在c#中申明如下:
[DllImport("Cts4r.dll", EntryPoint = "Cls")]
public extern static int Cls(ref Rectangle Clip);

调用
Rectangle rtl = new Rectangle();
int r = Cls(rtl);

结果 r = -1
错误,没有达到清屏的目的(应该返回0),请高手帮我看看我的申明、调用出了什么问题?
...全文
68 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
swsw1 2008-07-14
  • 打赏
  • 举报
回复
调用
Rectangle rtl = new Rectangle();
int r = Cls(ref rtl);
上面写错了,更正

yagebu1983 2008-07-14
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 csShooter 的回复:]
不要看到一个Dll就说可以DLLImport!

要看是还是COM或.net程序集!!


有时候人家的库包含在EXE里面你还不知道!
[/Quote]
有道理!!!
hanjun1024 2008-07-14
  • 打赏
  • 举报
回复
文档有没有C++的调用方式?Delphi的代码不怎么懂。这个函数应该做成C导出函数了吧?
swsw1 2008-07-14
  • 打赏
  • 举报
回复
这个肯定不是com或ocx,有文档的
csShooter 2008-07-14
  • 打赏
  • 举报
回复
不要看到一个Dll就说可以DLLImport!

要看是还是COM或.net程序集!!


有时候人家的库包含在EXE里面你还不知道!
完整的服务端及客户端调用程序,在win7+ vs2015环境运行通过. 一、说明 1、创建winfrom应用程序;(或者是控制台项目) 2、在项目中添加一个WCF服务,并实现服务; 3、在需要启动WebService服务的地方启动该服务即可; 二、代码如下: 1、新建一个WCF服务——定义服务接口    [ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]     public interface ICalculator     {         [OperationContract]         double Add(double n1, double n2);     } 2、新建一个WCF服务——实现服务 public class CalculatorService : ICalculator     {         public double Add(double n1, double n2)         {             return n1 + n2;         }     } 3、添加完WcF服务后会在应用程序配置文件中有入下节点                             <!--TestServer.ICalculator服务定义的接口,根据自己定义进行修改-->                                                                   <baseAddresses> <!--这个是要发布的服务地址,可以进行修改-->                                   </baseAddresses>                   4、在要启动服务的地方启动服务监听   public frmMain() { InitializeComponent(); } private void frmMain_Load(object sender, EventArgs e) { try { //打开服务创建监听,并开始监听消息 ServiceHost serviceHost = new ServiceHost(typeof(Service1));//需要using System.ServiceModel; serviceHost.Open(); label1.Text = "服务启动正常"; } catch (Exception ex) { label1.Text = ex.Message; } } 5、下面可以在客户端通过上面的服务地址”http://xxx.xxx.xxx.xx:8733/test/Service1/“对服务进行调用 到这步就实现在控制台中实现webService的发布。

111,120

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧