![]() |
Delphi DLL unter MSVC verwenden
Hallo,
seit Tagen versuche ich eine unter Delphi entwickelte ISA-Geräteansteuerung (kleiner Microcontroller für das Verfahren in x- und y-Richtung) unter C++ zu benutzen. Leider bis jetzt erfolglos. Der Delphi-Sourcecode steht mir zur Verfügung (kann die dll daher modifizieren und neu erstellen), darf ihn aber maximal auszugsweise posten. Los gehts mit einem kleinen Test-C++-Teil mit der dynamischen Einbindung der .dll: schnipp ---------------- #include "windows.h" typedef void (__stdcall* LPFNDLLFUNC3)();//prozeduraufruf int main(...) { HINSTANCE hInstance = LoadLibrary("meinedll.dll"); LPFNDLLFUNC3 DLLFCT3; if(hInstance==NULL) return(0); DLLFCT3=(LPFNDLLFUNC3)GetProcAddress((HMODULE hInstance, "Initialize"); if (!DLLFCT3){ FreeLibrary(hInstance); return(0);} DLLFCT3(); return(1); } --------------- schnapp Die dll wird geladen, die Funktion 'initialize' wird über sie geladen und problemlos ausgeführt. Problem: der Controller reagiert nicht!! Der Delphi-Part ist riesig, ich versuche daher einen kleinen überblick zu geben: Die Erstellungsroutine für die dll: schnipp --------------- library meinedll; uses SysUtils, portio, Classes; type ... TFwdSt = 0..3; ... const ... Bit_7 = $FE ... var ... iFwdSt = TFwdSt; ... ... procedure Initialize;stdcall; begin //Initialisierungsroutine unter Verwendung von portio (portwrite, etc) end ... exports ... Initialize, ...; begin end. --------------- schnapp Brauchen die eingebundenen prozeduren aus portio auch einen stdcall-Parameter? Wichtig noch zu erwähnen, dass portio mittels CreateService auf einen .sys-Treiber zugreift, der bei der .dll im selben Verzeichnis liegt. Könnte das das Problem verursachen? Den oben geposteten Code in C++ habe ich schon vielfach verändert, aber nie eine Reaktion des Controllers provozieren können. Hat jemand vielleicht Erfahrungen mit "runtime dynamic linking" in C mit Delphi-dlls? Ich wäre wirklich dankbar für Anregungen, gerne poste ich noch ein paar Sachen mehr falls es nötig ist. Gruß Entropie |
Re: Delphi DLL unter MSVC verwenden
Welche Windowsversion benutzt du zum Testen? 32bit oder 64bit?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:21 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz