|
Python入门:Python调用Delphi写的Dll
Delphi版本Delphi 10 Seattle
Delphi代码
- unit Unit1;
-
- interface
-
- function testint(): integer; stdcall;
- function testpchar(): PChar; stdcall;
-
- implementation
-
- function testint(): integer; stdcall;
- begin
- result := 666;
- end;
-
- function testpchar(): PChar; stdcall;
- begin
- result := '中文';
- end;
复制代码- library Project1;
-
- { Important note about DLL memory management: ShareMem must be the
- first unit in your library's USES clause AND your project's (select
- Project-View Source) USES clause if your DLL exports any procedures or
- functions that pass strings as parameters or function results. This
- applies to all strings passed to and from your DLL--even those that
- are nested in records and classes. ShareMem is the interface unit to
- the BORLNDMM.DLL shared memory manager, which must be deployed along
- with your DLL. To avoid using BORLNDMM.DLL, pass string information
- using PChar or ShortString parameters. }
-
- uses
- System.SysUtils,
- System.Classes,
- Unit1 in 'Unit1.pas';
-
- {$R *.res}
-
- exports
- testint,
- testpchar;
-
- begin
-
- end.
复制代码 Python调用
- import ctypes
-
- dll = ctypes.windll.LoadLibrary("Project1.dll")
- ri = dll.testint()
- print(ri)
-
- rc = dll.testpchar()
- rc = ctypes.c_wchar_p(rc)
- print(rc.value)
复制代码备注:
ctypes定义了一系列基本C数据类型:
|
|