Jag undrar om någon känner till om man kan erssätta en gammal COM Dll med en COM aware .NET Dll utan att behöva kompilera om klienterna som använder COM bibliteket? Du behöver inte kompilera om klienterna. Våverkar det om klienten använder eraly eller late bindings? Har för mig att för COM är enda skillanden mellan early och late binding ifall anropet sker via en vtable (med dispid) eller invoke (med namnet).COM Interoperability med binär kompabilitet
Jag är medveten om hur man skapar en COM aware .NET Dll. Men inte hur eller om det är möjligt at göra den binär kompabilitet med gammal klientkod.
Jag misstänker att det inte går att bibehålla binär kompabilitet och att man därför är tvungen att kopilera om klienterna.
Finns det någon som kan ge mig lite mer kött på benen om detta?
Rörande .net framwork 1.1 2 eller 3 spelar ingen större roll.Sv: COM Interoperability med binär kompabilitet
.Net COM interop ser till att ett kompatibelt interface syns utåt (mot klienten).
Jag har skrivit både native och .net COM objekt som används från samma klient utan några problem.Sv:COM Interoperability med binär kompabilitet
Sv: COM Interoperability med binär kompabilitet
Antar att din nya modul har exakt samma interface som den tidigare och då skall det inte spela någon roll hur anropet sker.
Skadar ju inte att dubbelkolla att dispid är samma i den gamla och nya komponenten.