草庐IT

c# - C# 与 Delphi 中日期/时间计算之间的差异

德尔福:SecondsBetween(StrToDateTime('16/02/200911:25:34p.m.'),StrToDateTime('1/01/200512:00:00a.m.'));130289133C#:TimeSpanspan=DateTime.Parse("16/02/200911:25:34p.m.").Subtract(DateTime.Parse("1/01/200512:00:00a.m."));130289134它也不一致。有些日期加起来是一样的,即..TimeSpanspan=DateTime.Parse("16/11/201111:25:43p.m.

c# - 从 Delphi 调用 dotNET 并返回一个字符串

Delphi应用程序如何调用导出函数(非COM)dotNET程序集并让函数返回字符串?COM不是我的特定应用程序的可能解决方案。我可以控制通话的两端。到目前为止我尝试过的-Delphi客户端typeTStrProc=procedure(varx:widestring);stdcall;functionTryIt:string;varHandle:THandle;Proc:TStrProc;InData:widestring;OutData:widestring;beginHandle:=LoadLibrary('DelphiToDotNet.dll');ifHandle=0thenex

c# - 为什么 regasm.exe 使用错误的 GUID 注册我的 C# 程序集?

我有一个c#程序集,我通过COM从Delphi(win32native)应用程序调用它。这适用于我测试过的所有机器,除了一台。问题是Delphi应用程序在尝试创建COM对象时得到“类未注册”。现在,当我查看HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID下的注册表时,那里列出的GUID与AssemblyInfo.cs中的程序集Guid不同。它应该是相同的-它在安装它的所有其他计算机上都是相同的。我试过regasm/unregisterdelphitocsharp.dll,这会删除注册表项。然后,如果我执行regasmdelphitocsharp.dll,注册

c# - 哪个是 delphi "class of "(类的类型)的 C# 声明?

在delphi中,我可以像这样声明一个类型的类typeTFooClass=classofTFoo;TFoo=classend;此声明的C#等效项是什么? 最佳答案 您在C#中可以获得的最接近的是Type类型,它包含有关类型的元数据。publicclassA{}publicstaticintMain(string[]args){Typeb=typeof(A);}这不是完全相同的。在Delphi中,“其他类型的类型”本身就是可以分配给变量的类型。在C#中,“其他类型的类型”是一个System.Type实例,可以分配给System.Typ

c# - 在Delphi中调用nil引用的方法是 "supported"吗?

以下Delphi程序根据nil引用调用方法并运行良好。programProject1;{$APPTYPECONSOLE}typeTX=classfunctionStr:string;end;functionTX.Str:string;beginifSelf=nilthenbeginResult:='nil'endelsebeginResult:='notnil'end;end;beginWriteln(TX(nil).Str);Readln;end.但是,在结构相似的C#程序中,将引发System.NullReferenceException,这似乎是正确的做法。namespaceCo

c# - 在没有类型库的情况下使用 C# 中的 COM dll

我需要使用很久以前用Delphi开发的COM组件(dll)。问题是:dll不包含类型库…….NET中的每个互操作功能(例如TlbImp)似乎都依赖于TLB。该组件已在此处的Delphi程序中使用多年,没有出现任何问题,因为“使用Delphi的COM对象不是什么大问题,因为我们知道接口(interface)”(引用Delphi开发人员的话)。有什么方法可以在没有TLB的情况下从c#使用此DLL?我试过将DLL用作非托管,但它导出的唯一方法是DllUnregisterServer、DllRegisterServer、DllCanUnloadNow和DllGetClassObject。我知道

c# - Delphi 开发人员转向 C#

我已经有一段时间是Delphiholic了,最近我也在考虑学习一些C#,但是我有点“害怕未知”,我已经做了一些简单的应用程序作为测试驱动C#,我不得不承认我喜欢它,但是我不太喜欢这个IDE...这里所说的问题,如果其他走这条路的人会回答,我将不胜感激:作为一名Delphi开发人员,Delphi语言的“主要基本”变化是什么(基本是指基本——实用函数、流等),我习惯于将“系统、类、窗口”添加到不使用“使用System.XXX.YYY.ZZZ”,我试图在我的脑海中实现从Delphi到C#的部分平等,直到我看到Delphi与C#携手并进的地方等等......我希望问题很清楚,如果没有,请毫不犹

c# - 坚持使用 Delphi.NET 和 Delphi 2007

我的公司有一个大问题。我们在Delphi.NET中开发了一个包含超过1.000.000行代码的应用程序。因此,我们只能使用Delphi2007和.NET2.0。随着技术和用例的发展,我们需要迁移到另一个开发平台。到目前为止,我们尝试了几种promise将Delphi.NET转换为C#代码的工具-每个工具都有几个问题,例如错误的字符串索引(Delphi1C#0)或何时使用类型来声明数组边界。采用这种方法后,我们尝试反编译Delphi.NET程序集-从中​​返回的代码几乎不可读,并且有数百个调用Borland特定程序集的辅助函数。我已经考虑过自己编写一个转译器的可能性,但是Delphi的歧

c# - 从不使用标签控件的对话框中获取文本?

这是我之前问题的延续HowtosupressadialogboxanInprocCOMServerdisplays.背景:回顾一下我的情况:我有一个由第3方用Delphi编写的InprocCOM服务器。如果我调用的函数之一捕获特定类型的错误,它将显示一个错误消息对话框。问题是我正在尝试批量处理数据,而我正在使用的数据源导致该错误对话框弹出很多(感谢我之前问题的回答,它现在自动关闭并且我能够运行它到完成后,它会显示对话框并要求有人按OK9923次)。进程阻塞,直到消息框关闭。问题:我希望更好地记录错误对话框中所说的内容。但是,任何获取对话框正文的尝试都失败了。//Snipprivatev

c# - 如何从服务接收 OutputDebugString?

我正在trycatch所有OutputDebugString使用以下代码的消息(包括来自服务的消息)。在我迁移到Windows7之前它运行良好。问题在于,由于WindowsVista服务在低级session#0中运行,有人说it'simpossiblecatch他们和一些它是。你怎么看?是否可以通过增加一些权限来修改以下代码,以便能够接收OutputDebugString来自Session#0的消息?换一种说法;是否可以在session#0中与session#1共享DBWIN_BUFFER?我会说这应该是可能的,因为例如DebugView可以做到这一点,而且我看不到任何服务助手可以将这