Announcement

Collapse
No announcement yet.

DLL und VBA

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLL und VBA

    <P>Habe in Delphi 2.0 folgene DLL (zum Testen) geschrieben:</P>
    <P>library SAS;<BR><BR>
    uses<BR>
    ShareMem, SysUtils, Classes;
    <BR><BR>
    function Addiere(i:Integer):Integer; stdcall;<BR>
    begin<BR>
    result:=i + 1<BR>
    end;<BR><BR>
    exports<BR>
    Addiere;<BR><BR>
    begin
    end.</P>
    <P>und sie folgendermaßen in ACCESS 2000 eingebunden:</P>
    <BR>Option Compare Database<BR>
    Private Declare Function Addiere Lib "C:\Test\SAS_2000_Neu\sas.dll" (ByVal i As Long)<BR><BR>
    Sub Befehl38_Click()<BR>
    Dim iA As Long<BR>
    iA = Addiere(5)<BR>
    MsgBox (iA)<BR>
    End Sub<BR></P>
    <P>Pfad in Declare ist genau der, in welcher sich aufrufende *.MDB-Datei befindet.<BR>
    wurde auch ohne Pfadangabe getestet, doch jedes mal kommt <B>VB-Fehler:53
    Datei "C:\Test\SAS_2000_Neu\sas.dll" bzw. "sas.dll" nicht gefunden</B>.<BR>
    Schreibweise wurde auch x-mal überprüft.</P>
    <P>Wer kann helfen?</P>
    <BR>
    mfg Wally

  • #2
    Hau mal folgendes rein:

    <pre>

    function Addiere(I: Integer): Integer; stdcall; export;
    begin
    Result := I + 1;
    end;<br>

    exports
    Addiere;<br>

    begin
    MessageBox(0, 'Test', 'Test', 0);
    end.<br>

    </pre>

    Falls Access doch die DLL findet und lädt kommt die MessageBox(), es könnte aber sein das Access die exportierte Funktion nicht findet und nur eine falsche Nachricht anzeigt.

    Gruß Hage

    Comment


    • #3
      Hallo Hagen,<BR>
      <P>Vielen dank für Deinen Tipp. Habe Problem gelöst. Es liegt an der<BR>Unit 'ShareMem' als diese im Unit-Abschnitt gelöscht wurde<BR> funktionierte alles wie gewollt.</P><BR>
      Gruß<BR>
      Wall

      Comment

      Working...
      X