AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Delphi DLL unter MSVC verwenden

Offene Frage von "entropie"
Ein Thema von entropie · begonnen am 5. Mai 2008 · letzter Beitrag vom 21. Jun 2008
Antwort Antwort
entropie

Registriert seit: 5. Mai 2008
1 Beiträge
 
#1

Delphi DLL unter MSVC verwenden

  Alt 5. Mai 2008, 20:18
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
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#2

Re: Delphi DLL unter MSVC verwenden

  Alt 21. Jun 2008, 22:13
Welche Windowsversion benutzt du zum Testen? 32bit oder 64bit?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz