Avatar billede sunero Nybegynder
08. marts 2007 - 11:46 Der er 10 kommentarer

C5 4.0 og C# DLL

Hejsa,

Er der nogen der har prøvet at lave en dll i C# Visual studio 2005 som kan bruges i kald fra en C5? 

måske findes der et HelloWorld eksempel på henholdsvis koden i C5 og C#
Avatar billede freekyzone Nybegynder
08. marts 2007 - 13:20 #1
Jeg kender en del til C5, og har selv omprogrammeret/tilføjet/redigeret i kernen på C5.

Hvad er dit problem? Hvad skal du have lavet?
Hvis du skriver hvad du skal lave, kan jeg måske hjælpe.
Avatar billede sunero Nybegynder
08. marts 2007 - 13:54 #2
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?
Avatar billede mariaf Juniormester
08. marts 2007 - 18:19 #3
Jeg ved ikke hvordan, men det kan sagtens lade sig gøre. Vi har en programmør, der koder i VS og som C5 kommunikerer med. Blot til info.
Avatar billede sunero Nybegynder
09. marts 2007 - 08:55 #4
mariaf >> Ved du om det er programmeret i C# og kunne du evt. lokke et lille helloworld eksempel ud af Jeres VS programmør?
Avatar billede up2nogood Nybegynder
09. marts 2007 - 09:53 #5
Halløj,

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...
Avatar billede Broholm Novice
10. marts 2007 - 16:19 #6
Åh tak :D

Hvilken opgave skal løses i C#? Min DLL kan kalde Automation servere direkte fra C5/XAL kode (Ligner WSH syntax).
Avatar billede sunero Nybegynder
12. marts 2007 - 08:38 #7
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 :-)
Avatar billede Broholm Novice
12. marts 2007 - 10:52 #8
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
Avatar billede sunero Nybegynder
13. marts 2007 - 08:13 #9
Hvor køber man den henne og hvad koster den?
Avatar billede Broholm Novice
13. marts 2007 - 15:29 #10
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
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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