jjzjj

c - Win VS2008 调用约定 : Delphi dll from c

我在C应用程序(VS2008,Win)中调用了一个用Borland中的Delphi编写的dll中的函数。该函数有效,但每次调用后我都会收到此错误:“ESP的值未在函数调用中正确保存[...]”,这意味着我的调用约定是错误的。我不知道Delphi,也没有完整的dll代码,但我相信这是Delphi函数:functiontranslate(file1,file2:PChar):PChar;stdcall;...Result:=PChar(c);end;exportstranslate;c中的相关部分:typedefchar*(__stdcall*translate)(char*,char*)

windows - 如何使用 Windows 身份验证的 Web 服务避免使用 Delphi HTTPRio 调用的登录对话框

我有一个C#web服务托管在IIS中,启用了Windows身份验证,我从Delphi7客户端调用它。当我调用该方法时,我有一个系统登录对话框,我必须输入我的Windows用户名和密码才能进行身份验证。有没有办法跳过登录对话框并使用当前登录的用户凭据来调用网络服务?我在帖子中看到很多解释如何通过在BeforePost事件中使用InternetSetOption(...)“注入(inject)”用户名/密码元素来避免使用基本身份验证的登录对话框,但没有关于Windows身份验证的内容。我期待一切都能完美地工作......谢谢编辑当前的身份验证类型是NTLM。我的应用程序没有任何登录/密码对

windows - 在 delphi XE7 中找不到 vcl 组件的交互式手势事件,如 igiZoom、igiPan 或 igiRotate

我想为我的Windows应用程序(鼠标和触摸)使用交互式手势事件。尽管OnGesture(Sender:TObject;constEventInfo:TGestureEventInfo;varHandled:Boolean);事件被触发,同时用两根手指触摸缩放,我总是得到EventInfo.gestureId是0。但我得到的是标准手势。注意:我使用DelphiXE7进行开发,使用Windows8.1触摸设备进行测试。procedureTForm1.GISGesture(Sender:TObject;constEventInfo:TGestureEventInfo;varHandled:

delphi - 如何使悬停在最小化、最大化和关闭按钮上的行为正常?

在Delphi应用程序中,当您将鼠标悬停在边框图标上时,例如:最小化最大化恢复它的行为不正确:与行为正确的应用程序进行比较:复制步骤单击文件、新建、VCLFormsApplication-Delphi点击运行(F9)将鼠标悬停在最小化、最大化或关闭按钮上。如何修复?Windows10,64位(在台式电脑上本地运行)德尔福XE6编辑-Delphi7也失败了:在Delphi5中:在Delphi4中:我假设(即害怕)它是由ThemeServices引擎引起的;他们可能认为不尊重用户的偏好很酷。但看起来它是更基本的东西。兼容模式无:失败Windows8:失败Windows7:失败Windows

windows - 如何使用 Delphi 在 Windows 中从 USB 驱动器挂载分区?

我想在Windows(XP)中挂载USB驱动器的所有分区。我的意思是我想为他们每个人分配驱动器号(当他们没有时)。操作系统会自动执行此操作,但在某些情况下此类程序很有用。我知道如何查找驱动器是否在USB上。到目前为止我的代码是:typeSTORAGE_QUERY_TYPE=(PropertyStandardQuery=0,PropertyExistsQuery,PropertyMaskQuery,PropertyQueryMaxDefined);TStorageQueryType=STORAGE_QUERY_TYPE;STORAGE_PROPERTY_ID=(StorageDevice

windows - 如何在Windows主题下使用Delphi显示一个 "greyed-out"只读复选框

我希望只读复选框变灰,但在Windows(XP及更高版本)下显示其选中/未选中状态,但我遇到了一些问题。注意-关于“只读”:似乎Delphi的TCheckBox甚至没有只读选项,这是通过将它放在TPanel上并禁用它来“伪造”的......但是问题仍然有效,如何实现一个灰色的只读复选框,或者一个显示其状态的非事件复选框。禁用的复选框显示为灰色,但不会显示选中或未选中状态。只读复选框可以,但是当Windows为它们设置主题时,它们看起来就像普通的可编辑复选框。只读框不能更改其值,但看起来可以。在关闭主题的XP中(即在经典模式下),它可以正常工作。NotAcceptable解决方案包括:-

windows - 用户使用阿拉伯/回历日历的 Delphi 问题

我的一些阿拉伯语用户向我报告了我的应用程序出错的问题。他们的共同点似乎是他们正在使用回历和TDateTimePicker控件导致问题(但很可能是整个TDateTime和RTL有问题,我不确定)回历有不同的年份开始/结束,这不太适合我的应用程序。(据我所知,Hijri首先在Windows7中可用。)我重现错误时遇到问题,因为1)我看不懂阿拉伯语,这使它变得更加困难2)我只能在Windows设置为阿拉伯语时选择Hijri(否则它不是一个可见的选项)这里有人遇到同样的问题吗?我使用Delphi2010我可以强制我的应用程序使用标准日历吗?(作为解决方案)或者我可以强制Windows在英文Wi

windows - 使用 Dejan TComport Delphi 组件从串口读取二进制数据

很抱歉这个问题,但我对Delphi有点菜鸟。我正在使用DejanTComport组件从串行端口获取数据。连接到该端口的一盒设备向串口发送大约100字节的二进制数据。我想要做的是将字节作为数值提取到一个数组中,以便我可以对它们执行计算。TComport有一个Read(buffer,Count)方法,它从输入缓冲区读取数据。functionRead(varBuffer;Count:Integer):Integer;帮助说明Buffer变量必须足够大以容纳Count个字节,但没有提供任何如何使用此函数的示例。我可以看到Count变量保存接收到的字节数,但我找不到访问Buffer中字节的方法。

windows - Delphi 中字符串操作的访问冲突

我有一个Delphi应用程序,它从一个文件中读取数据并将其存储在一个数组中。文件中的每一行都包含一个地址、lineTypeIndicator和数据。这是算法(包含我认为很关键的代码):AssignFile(inputFile,inFileName);Reset(inputFile);whilenotEOF(inputFile)dobeginReadln(inputFile,fileLineBuffer);ifCopy(fileLineBuffer,8,2)='01'then//Nevermanagedtocatchtheerrorherebeginbreak;end;//extract

windows - Delphi7 > MSMQ 3.0 失败的导入类型库 (TLB)。 "Element not found"错误

我正在尝试从mqoa.tlb或mqoa.dll的Delphi7>Project>ImportTypeLibrary创建单元,在WinXP和Win2003上,甚至在Win7x64上(都是mqoa30.tlb和mqoa.tlb(或*.dll),代表MSMQ4.0)-每次它都失败并出现错误“找不到元素”。根据MSMQ版本,在Windows2003和WindowsXP上安装了“MSMQ3.0”,但在我的旧项目中,我从mqoa20.tlb("C:\WINDOWS\system32\mqoa20.tlb”)。我想切换到MSMQ3.0接口(interface),但我不能。有什么建议吗?顺便说一下,曾