/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Overførsel af CString mellem Visual C++ dl~
Fra : Kurt Mølgaard Christ~


Dato : 14-12-02 13:00

Hej,

jeg prøver at lave en dll i visual c++.net (dll with MFC) som b.la. skal
kaldes fra et program skrevet i visual basic.
Dll'en skal modtage en string, ændre i strengen og returnere den nye string
tilbage til visual basic programmet. Jeg har prøvet med en CString da denne
kan indeholde en meget lang streng, men uden held.
Er der nogen som kan hjælpe mig ???


Kurt





 
 
Mogens Hansen (14-12-2002)
Kommentar
Fra : Mogens Hansen


Dato : 14-12-02 14:43


"Kurt Mølgaard Christensen" <kurt.christensen@get2net.dk> wrote in message
news:EZEK9.31$U33.892@news.get2net.dk...


> Er der nogen som kan hjælpe mig ???

Er det Visual Basic 6 eller Visual Basic .NET ?

Hvis det er Visual Basic 6 er den nemmeste måske at bruge typen BSTR i
stedet for CString i DLL'ets interface.
Se f.eks. Microsoft artiklen "Passing Strings to a DLL Procedure".

Hvis det er Visual Basic .NET er den nemmeste måde at bruge System.String i
stedet for CString.

Venlig hilsen

Mogens Hansen



Kurt Mølgaard Christ~ (15-12-2002)
Kommentar
Fra : Kurt Mølgaard Christ~


Dato : 15-12-02 11:58


Mogens Hansen <mogens_h@dk-online.dk> skrev i en
nyhedsmeddelelse:atfc7k$g81$1@news.cybercity.dk...
>
> "Kurt Mølgaard Christensen" <kurt.christensen@get2net.dk> wrote in message
> news:EZEK9.31$U33.892@news.get2net.dk...
>


Tak for din besvarelse Mogens.


> Er det Visual Basic 6 eller Visual Basic .NET ?

Jeg bruger Microsoft Visual Basic 6.0



> Hvis det er Visual Basic 6 er den nemmeste måske at bruge typen BSTR i
> stedet for CString i DLL'ets interface.

Jeg har prøvet med BSTR
BSRT Test="Test BSTR";
hermed kommer følgende fejl!
error C2440: 'initialising' : cannot convert from 'char[10]' to 'BSTR'

Men hvis jeg bruger en CComBSTR
CComBSRT Test="Test BSTR";
men så er det kun den aller første karakter "T" som returneres!


> Se f.eks. Microsoft artiklen "Passing Strings to a DLL Procedure".

Jeg kan ikke finde denne artikkel hverken i C++ eller Visual Basic hjælpen !
Jeg kan dog i vba finde "Passing Strings to a DLL functions" men den hjælper
mig ikke.


MVH
Kurt






BigFatLamer (15-12-2002)
Kommentar
Fra : BigFatLamer


Dato : 15-12-02 14:03

Kurt Mølgaard Christensen wrote:
> Mogens Hansen <mogens_h@dk-online.dk> skrev i en
> nyhedsmeddelelse:atfc7k$g81$1@news.cybercity.dk...
>
>>"Kurt Mølgaard Christensen" <kurt.christensen@get2net.dk> wrote in message
>>news:EZEK9.31$U33.892@news.get2net.dk...
>>
>
>
>
> Tak for din besvarelse Mogens.
>
>
>
>>Er det Visual Basic 6 eller Visual Basic .NET ?
>
>
> Jeg bruger Microsoft Visual Basic 6.0
>
>
>
>
>>Hvis det er Visual Basic 6 er den nemmeste måske at bruge typen BSTR i
>>stedet for CString i DLL'ets interface.
>
>
> Jeg har prøvet med BSTR
> BSRT Test="Test BSTR";
> hermed kommer følgende fejl!
> error C2440: 'initialising' : cannot convert from 'char[10]' to 'BSTR'
>
> Men hvis jeg bruger en CComBSTR
> CComBSRT Test="Test BSTR";
> men så er det kun den aller første karakter "T" som returneres!
>
>
>
>>Se f.eks. Microsoft artiklen "Passing Strings to a DLL Procedure".
>
>
> Jeg kan ikke finde denne artikkel hverken i C++ eller Visual Basic hjælpen !
> Jeg kan dog i vba finde "Passing Strings to a DLL functions" men den hjælper
> mig ikke.
>
>
> MVH
> Kurt
>
>
>
>
>
Husk at dit VB program køre i unicode (dobbelt byte tegn), mens dit VC
(højst sandsynligt) køre i ASCII (enkelt tegn). Så enten skal i
fortsætte i unicode eller frem og tilbage. Check "WideCharToMultiByte"
og "MultiByteToWideChar" i dok for VC.

Cheers, BFL


Søg
Reklame
Statistik
Spørgsmål : 177491
Tips : 31966
Nyheder : 719565
Indlæg : 6408458
Brugere : 218886

Månedens bedste
Årets bedste
Sidste års bedste