1、VC to Delphi Delphi源程序:
library ExportChartData;
uses SysUtils, Classes; {$R *.res} const DLL_VER : Word = $0001; function GetVer: Word; begin Result := DLL_VER; end; procedure SayHello(aString:pchar);cdecl; begin if aString = 'Hello!' then Beep; end; exports GetVer, SayHello; begin end. VC源程序
// TestInterface.cpp : Defines the entry point for the console application.
// #include "stdafx.h" #include <windows.h> int main(int argc, char* argv[]) { char *szDllName = "..\\..\\OBJ\\ExportChartData.dll"; HINSTANCE hInstance = LoadLibrary(szDllName); if (hInstance != NULL) { void (*f)(char &) = (void (*)(char &))GetProcAddress(hInstance, "SayHello"); char *s = "Hello!"; f(*s); } FreeLibrary(hInstance); return 0; } 2、Delphi to VC
library ExportChartData;
uses SysUtils, Classes; {$R *.res} const DLL_VER : Word = $0001; function GetVer: Word; begin Result := DLL_VER; end; procedure SayHello(index:Integer;aString:pchar);cdecl; begin if index = 0 then strcopy(aString,'A Test for Pass String!') else strcopy(aString,'OK!'); end; exports GetVer, SayHello; begin end. VC源程序
// TestInterface.cpp : Defines the entry point for the console application.
// #include "stdafx.h" #include <windows.h> #include <stdio.h> typedef char* PCHAR; int main(int argc, char* argv[]) { PCHAR szDllName = "..\\..\\OBJ\\ExportChartData.dll"; HINSTANCE hInstance = LoadLibrary(szDllName); char *s = new char[255]; if (hInstance != NULL) { void (*f)(int, char *) = (void (*)(int, char *))GetProcAddress(hInstance, "SayHello"); f(1, s); printf("%s",s); } FreeLibrary(hInstance); delete[]s; return 0; } |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论