HDSoftware Skrevet 9. september 2009 Del Skrevet 9. september 2009 (endret) Folkens-....: Jeg har et program i Clarion som har en datatype av typen GROUP. Ser f.eks. slik ut: MyGroupType GROUP, TYPE Verdi1 LONG END MyGroup &MyGroupType Så har jeg en prosedyre i Clarion som ser slik ut: AssignGroup procedure(LONG pAdresse) CODE MyGroup &= (pAdresse) Kort forklart så betyr dette at jeg har en datatype (MyGroupType) og en referanse til denne datatypen slik at MyGroup nå er en referanse til hva som måtte komme igjennom pAdresse. Det betyr at jeg i Clarion kan kalle slik: EnGruppe &MyGroupType EnGruppe = new MyGroupType EnGruppe.Verdi1 = 10 Såh over til problemet... Jeg har i C# laget en Interop klasse som tar inn DLL'en som inneholder det over og har prototypet en struct slik: [StructLayout(LayoutKind.Sequential, Pack=1, CharSet=CharSet.Ansi)] public struct ClarionDataExchangeType { public Int32 Verdi1; } public static ClarionDataExchangeType ClarionData = new ClarionDataExchangeType(); Så har jeg dratt inn den AssignGroup metoden inn i .NET slik: [DLLImport("ClaNet", EntryPoint = "ASSIGNGROUP")] public static extern void SetClarionGroup(ref ClarionDataExchangeType pClarionData); Dette gjør at når jeg kaller metoden SetClarionGroup så får jeg en "transparent" versjon av struct/group - nesten... Hvis jeg gjør endringer i verdiene på .NET siden så ser jeg dette både i .NET programmet og i Clarion programmet. Men når jeg endrer noe på Clarion siden så skjer det ingen ting. Virker som at denne greia gjør den ReadOnly eller noe slikt. Noen som vet en måte å omgå dette på? Endret 9. september 2009 av HDSoftware Lenke til kommentar
HDSoftware Skrevet 9. september 2009 Forfatter Del Skrevet 9. september 2009 WELL!!! Var vist jeg som hadde gjort noe galt i Clarion programmet mit. Dette fungerer faktisk helt kjempebra. Med andre ord, ingen problemer med temaet og kan annses som løst Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå