![]() |
Problem beim einbinden von dll's
Hallo!
Hab ein Problem mit dem Einbinden von dll's, will eine zum Ladezeitpunkt einbinden: Laden(extra Unit):
Delphi-Quellcode:
aufruf der procedure start:
unit dlls;
interface procedure start; implementation procedure start; external 'Weg.dll'; end.
Delphi-Quellcode:
Folgender Fehler tritt auf:
procedure TForm1.MausPosition(Sender:TObject);
begin a:=StrToInt(Edit2.Text); if a=1 then begin Form2.Edit5.Text:=IntToStr(Mouse.CursorPos.X); Form2.Edit6.Text:=IntToStr(Mouse.CursorPos.Y); Form1.Maus2(Form1); Form1.Image1.OnClick:=nil; Form1.Image1.OnMouseMove:=nil; Form1.setzen(Form2.Edit3.Text,Form2.Edit4.Text,Form2.Edit5.Text,Form2.Edit6.Text); dlls.start; //Hier wird die Prozedure aufgerufen!!!!! end; if a=0 then begin Form2.Edit3.Text:=IntToStr(Mouse.CursorPos.X); Form2.Edit4.Text:=IntToStr(Mouse.CursorPos.Y); Edit2.Text:='1'; end; end; acess violation at 0x7c947a50: write of adress 0x00030d28 Wenn ich jetzt das "dlls.start" entferne, funktioniert alles! Die Prozedure start gibt es in der dll und wird auch exportiert! |
Re: Problem beim einbinden von dll's
Denke an:
- Aufrufkonventionen und - Paramater/Rückgabewerte diese müssen identisch sein. Dazu wäre intressant in welcher Sprache die DLL entwickelt wurde. |
Re: Problem beim einbinden von dll's
Objekt Pascal, selber geschrieben, mit Delphi 6 Personal, mit dem ich auch das Programm schreibe!
Meinst du, dass ich stdcall verwenden sollte? |
Re: Problem beim einbinden von dll's
Ups... :oops:
Fehler gefunden! Die dll war im falschen Ordner! |
Re: Problem beim einbinden von dll's
Ähm, das
Delphi-Quellcode:
ruft die Prozedur aus der Unit aus, aber bestimmt nicht aus der DLL.
dlls.start;
|
Re: Problem beim einbinden von dll's
Laut Tutorial hab ich in der Unit dlls der Prozedure "start" die prozedure "start" der dll "Weg" zugewiesen, und kann dann diese so aufrufen!
Wenn das nicht stimmt, wie kann ich dann die Prozedure "start" der "Weg.dll" aufrufen? |
Re: Problem beim einbinden von dll's
Zitat:
Zitat:
Delphi-Quellcode:
Und nach welchem Tutorial? In dem von Assarbad sthet das so bestimmt nicht drinne:
type
TShellexecute = function(hWnd: HWND; Operation, FileName, Parameters, Directory: PChar; ShowCmd: Integer): HINST; stdcall; procedure TForm1.Button1Click(Sender: TObject); var hLib: cardinal; MyShellExecute: TShellexecute; begin hLib := LoadLibrary('shell32.dll'); if hLib <> 0 then begin @MyShellexecute := GetProcAddress(hLib, 'ShellExecuteA'); if not Assigned(MyShellexecute) then begin RaiseLastOSError; exit; end; end else begin RaiseLastOSError; exit; end; MyShellexecute(Form1.Handle, 'open', 'Notepad.exe', nil, nil, SW_NORMAL); end; ![]() |
Re: Problem beim einbinden von dll's
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:28 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