Avatar billede neuro Nybegynder
24. december 2001 - 15:32 Der er 14 kommentarer og
2 løsninger

char * -> BSTR

hvordan konverterer man en char * til BSTR?????
Avatar billede nolle_k Nybegynder
26. december 2001 - 21:09 #1
Hvis du bruge benytte MFC så kan
BSTR bStr =  CString(*pChar).AllocSysString() vist nok benyttes!!
Avatar billede neuro Nybegynder
26. december 2001 - 23:50 #2
hm.. vil helst undgå at benytte MFC, da jeg slet ikke bruger det andre steder i min applikation - så det ville være lidt irriterende at skulle include MFC bare for at kunne konverterer en datatype.

det må vel kunne lade sig gøre UDEN MFC?????????????
Avatar billede barefoot Nybegynder
27. december 2001 - 00:04 #3
neuro => kan du ikke se hvordan MFC funktionen er skrevet i header filen og så bruge teknikken derfra?
MFC benytter vel i bund og grund den teknik som du efterlyser?
Avatar billede neuro Nybegynder
27. december 2001 - 00:07 #4
barefoot> kan du komme med et eksempel?
Avatar billede neuro Nybegynder
27. december 2001 - 00:09 #5
ville heller ik være det sjoveste at skulle sidde og glo header filer igennem :) hehe ...

findes der virkelig ik en konverterings routine, som kan benyttes??
Avatar billede barefoot Nybegynder
27. december 2001 - 00:11 #6
Overhovedet ikke:)
Jeg er ikke ekspert på område men en lysegrøn newbie.
Jeg ved bare at funktioner som cout er skrevet i mere basale c++ funktioner og man kan se hvordan hvis man åbner iostream.h i sin editor.
Alle headerfilerne ligger i c:\\bc5\\include hos min compiler..
Men ved heller ikke hvad den headerfil du skal bruge hedder...det ved du vel siden du sagde at du ikke ville inkludere den?
Avatar billede barefoot Nybegynder
27. december 2001 - 00:12 #7
tja man lærer vel noget om effektiv programmering ved at kigge på headerfiler.
Jeg har meget sjov med det som nybegynder...
Avatar billede neuro Nybegynder
27. december 2001 - 00:13 #8
MFC er jo en masse klasser man kan inklude når man opretter sit projekt .. og det er det jeg ikke vil gøre da mit projekt allerede er rimelig stort og er ikke interesseret i at skulle have MFC involveret.

jeg har naturligvis ikke noget imod at benytte .h filer, det kan man jo stort set ikke undgå når man koder c/c++ :) .. så hvis du kender en konverteringsroutine, som kan konverterer en char* til BSTR, så sig frem :)

????
Avatar billede barefoot Nybegynder
27. december 2001 - 00:16 #9
igen: jeg kender ikke noget til ret meget i c++ endnu:)
borland c++ er heller ikke særligt avanceret, jeg har ihvertfald ikke stødt på nogen steder hvor man kan inkludere omtalte klasser når man opretter et projekt...
Jeg har desværre ikke Borland c++ builder:(
Avatar billede neuro Nybegynder
27. december 2001 - 00:22 #10
jo i visual c++ kan du vælge at inkluderer MFC klasserne når du opretter dit projekt :) ...

men nok om MFC .. hehe .. jeg er mere interesseret i en konverteringsroutine fra char* til BSTR ..
Avatar billede barefoot Nybegynder
27. december 2001 - 00:30 #11
tja men det jeg har et IKKE visual c++! Der er borlands compiler combineret med et POS editor (Peace Of Shit).

Men forståeligt nok at du gerne vil have din routine:)
Avatar billede jpk Nybegynder
27. december 2001 - 10:07 #12
Har du prøvet at anvende _bstr_t typen?
den ta\'r en char* in constructoren.

Avatar billede neuro Nybegynder
27. december 2001 - 12:40 #13
tak til jpk og nolle_k .. faktisk var det en god blanding af de to svar, som fik mig på sporet af den rigtige løsning :)
Avatar billede nolle_k Nybegynder
27. december 2001 - 12:54 #14
Lad os se løsningen??
Avatar billede neuro Nybegynder
27. december 2001 - 14:04 #15
løsningen er en del af et større objekt, men i kan da godt se funktionerne ...

BSTR* bstring(char *s) {
            BSTR *bstr=new BSTR();
            USES_CONVERSION;
            *bstr=SysAllocString(A2W(s));
            return(bstr);
        }

        char *charstring(BSTR *bstr) {
            char *s=(char *)calloc(SysStringLen(*bstr),sizeof(char));
            sprintf(s,\"%S\",*bstr);
            return s;
        }

Avatar billede neuro Nybegynder
27. december 2001 - 14:05 #16
og ja _bstr_t typen gør det ekstremt meget nemmere, da den som jpk sagde indeholder en char* i constructor .. ;) hehe .. så den type benytter jeg også steder hvor der er anvendeligt i stedet for BSTR.
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