Tag: delphi

C char类型到delphi的转换

可能重复: 将C数组声明移植到Delphi 我正在将C代码转换为Delphi,我想转换变量声明,但我真的不知道..你能帮忙吗? char szImageName[BUFMAXLEN]; 谢谢。

有没有为Delphi(Win32)DLL创建C头文件的工具?

到目前为止,我只看到了为给定的C头文件创建Delphi代码的工具和一些信息。 但是,在’Delphi first’的情况下,有一个Delphi接口声明和一个生成的DLL,没有C头。 是否有工具可以提取必要的信息并为DLL构建C头文件? 这样的工具可以在跨语言/跨平台项目中提供帮助并节省时间。 例如,使用C头文件,使用jnaerator自动创建Java JNA绑定代码会更容易。 工具链看起来像这样: Delphi源码 – >创建C头 – >转换为Java绑定 – >使用Java中的Delphi DLL

从Delphi中的C DLL获取字符串返回值

我有一个用C编写的遗留DLL,它包含一个返回字符串的函数,我需要从Delphi访问这个函数。 我对DLL的唯一信息是用于访问函数的VB声明: 公共声明函数DecryptStr Lib“strlib”(Str As String)As String 我试过以下没有成功: 宣言: function DecryptStr(s: PChar): PChar; cdecl; external ‘strlib.dll’; 用法: var p1, p2 : pchar; begin GetMem( p1, 255 ); StrPCopy( p2, ‘some string to decrypt’ ); p1 := DecryptStr( p2 ); end; 这始终使DLL与访问冲突崩溃。 我很茫然。 有什么建议 ?

内存扫描仪慢速扫描

我正在使用内存扫描仪,但扫描速度很慢..任何人都可以帮助我改进吗? procedure FirstScan(scantype, scanvalue: string); var value :integer; dwEndAddr : dword; i:dword; mbi : TMemoryBasicInformation; begin while (VirtualQuery(Pointer(DWORD(mbi.BaseAddress) + MBI.RegionSize), MBI, SizeOf(MEMORY_BASIC_INFORMATION))=SizeOf(TMemoryBasicInformation)) do begin if (MBI.State = MEM_COMMIT) and (MBI.Protect = PAGE_READWRITE) then begin dwEndAddr := DWORD(mbi.BaseAddress) + MBI.RegionSize; for i := DWORD(MBI.BaseAddress) to (dwEndAddr – 1 – sizeof(DWORD)) do begin Application.ProcessMessages; try if scantype […]

Delphi XE3:使用多个C头文件和源文件

所以,我有一组相互依赖的.c和.h文件,而我正在试图弄清楚C / C ++到Pascal的工作方式(我的delphi / pascal工作非常基本)。 c文件是数学算法的步骤1-N(按顺序)(每个是一个单独的函数),一个头指定每个函数中使用的变量(我使用record在delphi中重新创建.h文件),另一个标题详细说明了自定义变量类型。 目标是访问函数而无需将C代码重写为Pascal / Delphi语法,从delphi代码链接到某些现有c。 有太多冗长的文件(12 .c和4 .h)供我剪断,我的C非常生锈,但我会尝试。 例如,我有一个文件funcs.h : #ifndef _FUNCS_H #ifndef _FUNCS_H #ifdef __cplusplus extern “C” { #endif #include “New_Type.h” // custom variable used in funcs.h #include “Optional.h” // optional set of more functions typedef struct { int a1[4]; double b1[10]; // Computed if optional functions are requested […]

用Delphi消费C dll

我有一个带有此签名的Dll函数: UInt32 Authenticate(uint8 *Key); 我在Delphi上这样做: function Authenticate(Key:string) : UInt32; external ‘mylib.dll’ name ‘Authenticate’; 但总是,函数返回10(错误代码)和应用程序刹车: 有办法做到这一点吗? 更新: 谢谢你们! 你是最好的!

控制台应用程序运行速度比GUI应用程序快

我对编程世界相对较新。 我有一些性能问题: 控制台应用程序的运行速度比具有图形用户界面的应用程 像C和Pascal这样的语言比C ++和Delphi这样的面向对象语言更快吗? 我知道语言速度更多地依赖于编译器而不是语言本身,但是程序语言的编译器是否比OO编译器(包括可以生成C代码的C ++编译器)产生更快的代码?

Delphi和C / C ++ DLL Struct vs.Record

我之前问了一个关于delphi和C / C ++ DLL的问题。 我现在有另一个关于记录/结构的问题。 DLL应该能够动态地从MainAPP更改指针变量的VALUE。 我的delphi MAINAPP有以下记录: type MyRec = record MyInteger : Pointer; MyWideString : pwidechar; MyString : pchar; MyBool : Pointer end; type TMyFunc = function ( p : pointer ): pointer; stdcall; procedure test; var MyFunction : TMyFunc; TheRecord : MyRec; AnInteger : Integer; AWideString : WideString; AString : String; […]

如何从Delphi中生成的DLL导入函数?

你能告诉我如何在我的C程序中使用以下function吗? Delphi DLL – 导出的函数: function GetCPUID (CpuCore: byte): ShortString; stdcall; function GetPartitionID(Partition : PChar): ShortString; stdcall; 我没有该DLL的源代码,所以我必须使我的C程序适应该DLL,而不是相反。 我执行以下操作并得到错误 typedef char* (_stdcall *GETCPUID)(BYTE); typedef char* (_stdcall *GETPID)(PCHAR); GETCPUID pGetSerial; GETPID pGetPID HMODULE hWtsLib = LoadLibrary(“HardwareIDExtractor.dll”); if (hWtsLib){ pGetSerial = (GETCPUID)GetProcAddress(hWtsLib, “GetCPUID”); char *str = (char*) malloc(1024); str = pGetSerial((BYTE)”1″); pGetPID= (GETPID )GetProcAddress(hWtsLib, “GetPartitionID”); char *str1 […]

从Win32从C或Delphi获取BIOS UUID

VMWare配置文件包含类似的行 uuid.bios = “56 4d ed cf 3c cd 63 20-53 78 95 86 26 92 22 c8” 而afaik大多数(每个?)物理BIOS都有这样的UUID。 是否有任何Windows API调用来获取此标识符? 我已经尝试了WMI类Win32_ComputerSystemProduct.UUID属性,但该值与uuid.bios值不同。 HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Cryptography \ MachineGuid的值也不同。