Avatar billede ruma1974 Nybegynder
30. oktober 2005 - 12:34 Der er 1 løsning

Debugge dll i visual c++

Hej,

Jeg kan godt kopilere følgende c++ kode og delphi kode men jeg før følgende fjel når chartest kaldes:

access violation at address .....

Er det muligt at starte delphi programmet fra C++ så man kan debugge dll'en?

Tchartest = function ():Pchar; {$IFDEF WIN32} stdcall; {$ENDIF}

...

procedure TForm1.button1Click(Sender: TObject);
var
chartest:Tchartest;
DLLHandle: THandle;
seq:Pchar;
begin
    //load dll
    DLLHandle := LoadLibrary(Pchar('.\dlls\chartest.dll'));
    if DLLHandle <> 0 then
      begin
      @chartest :=GetProcAddress(DLLHandle, 'chartestF');
      seq:=chartest();
      end;
    end;
FreeLibrary(DLLHandle);
resultmemo.Lines.Add(seq);
end;


// TestScore.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "TestScore.h"



BOOL APIENTRY DllMain( HANDLE hModule,
                      DWORD  ul_reason_for_call,
                      LPVOID lpReserved
                    )
{
    switch (ul_reason_for_call)
    {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}


// This is an example of an exported variable
TESTSCORE_API int nTestScore=0;

// This is an example of an exported function.
TESTSCORE_API char* chartestF(void)
{
    char* pstringchar =  "test";
    return pstringchar;
}

mvh,

Rune
Avatar billede ruma1974 Nybegynder
30. oktober 2005 - 13:27 #1
Koden virker faktisk. Jeg havde et andet problem i mit delphi program - sorry.

Lukker.

Rune
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester