|
| Returner streng til VB Fra : L. Hansen |
Dato : 25-07-01 11:48 |
|
Hej
Bruger Visual C++ 5.0 Enterprise / Windows 98
Fremstiller en DLL i ovennævnte og skal 'blot' returnere en streng.
Denne kode crasher:
Char* _stdcall TestLogFNr()
{
return ("AGENT 007");
}
....
Denne kode giver compileringsfejl:
BSTR _stdcall TestLogFNr()
{
BSTR bstrFDATA;
bstrFDATA = "AGENT 007";
return (bstrFDATA);
}
....
Er der en i NG'en der lige kan anvise den korrekte syntaks for:
Tildeling af værdi til streng, samt korrekte måde at returnere værdien.
(Jeg benytter IKKE MFC, men bruger blot .cpp / .def / .rc)
På forhånd tak.
Mvh, L. Hansen
webmaster@dancar.dk
| |
Mogens Hansen (25-07-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 25-07-01 14:51 |
|
"L. Hansen" <webmaster@dancar.dk> wrote in message
news:3b5ea413$0$260$edfadb0f@dspool01.news.tele.dk...
> Hej
>
> Bruger Visual C++ 5.0 Enterprise / Windows 98
> Fremstiller en DLL i ovennævnte og skal 'blot' returnere en streng.
> Denne kode crasher:
>
> Char* _stdcall TestLogFNr()
> {
> return ("AGENT 007");
> }
>
> ...
> Denne kode giver compileringsfejl:
>
> BSTR _stdcall TestLogFNr()
> {
> BSTR bstrFDATA;
> bstrFDATA = "AGENT 007";
> return (bstrFDATA);
> }
>
jeg tror (det er _ikke_ test) at det er
BSTR _stdcall TestLogFNr()
{
return SysAllocString(L"AGENT 007");
}
Venlig hilsen
Mogens Hansen
| |
L. Hansen (25-07-2001)
| Kommentar Fra : L. Hansen |
Dato : 25-07-01 15:05 |
|
Hej
Tak for dit hurtige svar.
Jeg får nu en anden fejl:
error C2664: 'SysAllocString' : cannot convert parameter 1 from 'char [10]'
to 'const unsigned short *'
Mvh, L. Hansen
webmaster@dancar.dk
"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:3b5ece4e$1@lxcs1.manbw.dk...
> jeg tror (det er _ikke_ test) at det er
>
>
> BSTR _stdcall TestLogFNr()
> {
> return SysAllocString(L"AGENT 007");
> }
| |
Soeren Sandmann (25-07-2001)
| Kommentar Fra : Soeren Sandmann |
Dato : 25-07-01 15:39 |
|
"L. Hansen" <webmaster@dancar.dk> writes:
[Jeg har omorganiseret dit indlæg, så teksten står i den rækkefølge
den skal læses]
> > BSTR _stdcall TestLogFNr()
> > {
> > return SysAllocString(L"AGENT 007");
> > }
>
> Tak for dit hurtige svar.
>
> Jeg får nu en anden fejl:
> error C2664: 'SysAllocString' : cannot convert parameter 1 from 'char [10]'
> to 'const unsigned short *'
Jeg kender ikke noget til Window, så dette er kun et gæt: Du glemte
L'et foran "AGENT 007"?
| |
L. Hansen (25-07-2001)
| Kommentar Fra : L. Hansen |
Dato : 25-07-01 16:48 |
|
"Soeren Sandmann" <sandmann@daimi.au.dk> skrev i en meddelelse
news:ye87kwxaxaq.fsf@alex.daimi.au.dk...
> Jeg kender ikke noget til Window, så dette er kun et gæt: Du glemte
> L'et foran "AGENT 007"?
Ok - det er korrekt.
Men jeg modtager desværre en streng i formatet:
"A|G|E|N|T| |0|0|7"
hvor de lodrette tegn er lidt mere fede.
Jeg gætter på, at der skal kaldes en strengkonvertering inden der
returneres.
Jeg har inkluderet <string.h>
Mvh, L. Hansen
webmaster@dancar.dk
| |
Mogens Hansen (25-07-2001)
| Kommentar Fra : Mogens Hansen |
Dato : 25-07-01 19:57 |
|
"L. Hansen" <webmaster@dancar.dk> wrote in message
news:3b5eea57$0$344$edfadb0f@dspool01.news.tele.dk...
> Men jeg modtager desværre en streng i formatet:
>
> "A|G|E|N|T| |0|0|7"
>
> hvor de lodrette tegn er lidt mere fede.
> Jeg gætter på, at der skal kaldes en strengkonvertering inden der
> returneres.
Så prøv
#include <stdlib.h>
BSTR _stdcall TestLogFNr()
{
wchar_t buffer[1024];
mbstowcs(buffer, "AGENT007", sizeof(buffer)/sizeof(buffer[0]));
return SysAllocString(L"AGENT 007");
}
jeg tror at der er en chance for at det virker bedre på din platform, men
jeg har stadig ikke tested det.
Venlig hilsen
Mogens Hansen
| |
L. Hansen (25-07-2001)
| Kommentar Fra : L. Hansen |
Dato : 25-07-01 23:17 |
|
"Mogens Hansen" <mogens_h@dk-online.dk> skrev i en meddelelse
news:9jn4lc$l4b$1@news.cybercity.dk...
> Så prøv
>
> #include <stdlib.h>
>
> BSTR _stdcall TestLogFNr()
> {
> wchar_t buffer[1024];
> mbstowcs(buffer, "AGENT007", sizeof(buffer)/sizeof(buffer[0]));
> return SysAllocString(L"AGENT 007");
> }
>
> jeg tror at der er en chance for at det virker bedre på din platform, men
> jeg har stadig ikke tested det.
>
> Venlig hilsen
>
> Mogens Hansen
>
>
Jeg filtrerer strengen når den modtages i VB - det er da rimeligt og
fungerer uden crash.
Tusinde mange tak for din flotte hjælp.
Med venlig hilsen
L. Hansen
webmaster@dancar.dk
| |
|
|