Avatar billede frosig Nybegynder
29. november 2005 - 17:10 Der er 4 kommentarer og
1 løsning

problemer med functionskald i dll

Hejsa,

Jeg prøver at bygge følgende dll i visual studio .net

__declspec (dllexport) int test(void)
{
    /* test */
    char* c = malloc(1);

    return 1;
}

og derefter kalde den fra vb, men hvis jeg gør det, så får jeg en helt forkert værdi tilbage. Hvis jeg ikke kalder en funktion (i dette tilfælde malloc) før jeg returnerer 1, så får jeg den rigtige værdi tilbage. Jeg gætter på, at det nok er adressen på funktionen, som jeg får tilbage, men hvorfor?
Avatar billede arne_v Ekspert
29. november 2005 - 22:34 #1
Hvordan er den erklæret ?
Avatar billede frosig Nybegynder
30. november 2005 - 00:17 #2
Public Declare Function test Lib "test.dll" () As Long
Avatar billede frosig Nybegynder
30. november 2005 - 11:08 #3
Har selv fundet fejlen... Jeg troede, at en long i VB var 32 bit, så den kunne sidestilles med C's int, men nej. Long er 64 bit, så nu bruger jeg Int32 i stedet
Avatar billede arne_v Ekspert
30. november 2005 - 16:04 #4
integer = 16 bit
long = 32 bit

i VB

integer = 32 bit
long = 64 bit

i VB.NET

Og hvis VB.NET hvorfor så ikke managed C++ ?
Avatar billede frosig Nybegynder
01. december 2005 - 11:23 #5
Det er en længere historie, men det er i bund og grund, fordi jeg også skal bruge kildekoden til dll'en i ren C...
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