Avatar billede mgsj Nybegynder
28. juni 2006 - 10:01 Der er 1 kommentar

MFC og Automation

Hej. Jeg har to applikationer som jeg skal have til at spille sammen. Jeg har dog imidlertid nogle problemer med nogle parametre.

Jeg anvender Visual Studio 2005.

Den ene app. "appServ" er en automation server, mens den anden app. "appClient" er en automation client.

Jeg gør følgende:
Add class-> MFC ->MFC Class from TypeLib -> Add class from file -> "sti til den .tlb-fil fra appServ" -> Interface: IappServ => Generated Class: CappServ => Class: CappServ =>File: CappServ.h

Der autogenereres så en CappServ.h-fil fra en .odl-fil i appClient solutionen.

I .odl-filen ligger mine funktioner som jeg vil tilgå fra client programmet. F.eks. [id(1)] void funktion1 (LPCTSTR lpStr);.

I den nye autogenererede fil skifter parametren pludselig type til LPWSTR i client programmet, altså void funktion1 (LPWSTR lpStr. Hvorfor gør den det??? Der bliver kastet en COleException som er unhandled. Det sjove er så at hvis jeg TRY/CATCH'er det som en COleException æder den koden, men der står intet om hvilken exception der kastes. Det forstår jeg ikke.

Jeg mener at kunne spore det til at parameter typen ændres. Kan nogen be/afkræfte dette, eller komme med en forklaring på hvorfor den ændrer parametrene?

På forhånd tak
Avatar billede mgsj Nybegynder
28. juni 2006 - 10:36 #1
Altså, det er når der bliver modtaget en streng hér

    void funktion1(LPWSTR lpStr)
    {
        static BYTE parms[] = VTS_UNKNOWN ;
        InvokeHelper(0x2, DISPATCH_METHOD, VT_EMPTY, NULL, parms, lpStr);
    }

At der bliver kastet en COleException.
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