Jeg kan godt finde ud af C5 delen med DLLOpen, DLLCall og DLLClose.
Mit eksempel et : INT &WinOleDLL STR 10 &Tekst
SET &WinOleDLL = DLLOpen('TEST.DLL') IF NOT &WinOleDLL THEN SET Box(1,"DLL'en kunne ikke åbnes",0) RETURN 0 ENDIF
SET &Tekst = "" SET &Tekst = DLLCall(&WinOleDLL,'HelloWorld.PutText',0,'Hej med dig') IF DLLClose(&WinOleDLL) THEN ENDIF PRINT &Tekst PAUSE
Mit problem er, at der ikke sker noget ved kaldet til DLL filen. Nu er jeg ikke en haj til VS, men jeg har læst at C5 kun kan kommunikere med win32 dll'ere og ikke .net dll'er. Er dette korrekt og hvordan laver man en DLL i C# og VS som C5'eren kan kommunikere med?
Ifølge mine oplysninger understøtter C5 ikke DLL'er hvor der findes managed code. Du skal selv styre dine memorypointers osv. C5 kommunikerer med DLL'en ved at bruge memorypointers til de variabler osv der håndteres. Da typisk .net kode er managed code, vil det ikke umiddelbart virke. Du kan dog lave dit kode om til unmanaged code, men så er vi ved at være et stykke fra C#. En måde at omgå det på er at bruge en "Wrapper", som kan sende kaldet videre. En sådan har Broholm lavet, og den virker med stor success...
Jeg er kun lige igang med den indledende test, så mit eksempel ovenfor er hvad jeg har pt. Det jeg havde forestillet mig var en simpel tilbagemelding, med f.eks. antal tegn i strengen 'hej med dig'. Man skal jo begynde et syed :-)
Jeg tror desværre ikke at du kommer udenom unmanaged kode, hvis du vil lave DLL'er til C5/XAL. Men det var derfor jeg lavede min DLL, som jeg sælger. Så slipper man for det og den er ikke hardcodet til noget specifikt. Og da CLR også er en Automation-server, kan .Net kode kaldes fra C5 igennem min DLL
Jeg har mit eget firma hvor jeg sælger den. Kontakt mig på <nul-ni-nul-fem-syv-otte>@gmail.com (brug tallene istedet). Så kan vi aftale videre derpå.
Mvh Broholm
Synes godt om
Ny brugerNybegynder
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.