Go4Expert

Go4Expert (http://www.go4expert.com/)
-   C# (http://www.go4expert.com/forums/c-sharp/)
-   -   HELP : Getting junk Chars in C# Dll while calling function through VC++ (http://www.go4expert.com/forums/help-getting-junk-chars-c-sharp-dll-t5108/)

sisrahul 4Jul2007 21:15

HELP : Getting junk Chars in C# Dll while calling function through VC++
 
Hi All

Been trying to figure out a solution to this problem since long. Would appreciate if someone can throw some light.

I am calling a managed C# dll in VC++ code. My problem is that I'm unable to pass the bstr data from VC++ to C#. In fact, the bstr data is coming to C#, but its all junk values that looks something like this...

瑨灴⼺ㄯ㈹ㄮ ㄮ㄰ㄮ㌰术⽷異彴硸⹸桰p.280ㅗĄ

Though if I pass a data of type "int", I get the correct value in C#. The problem is with the bstr values. This is how my code is in VC++...

unsigned char* URL ;

I have typecasted this unsigned char* into a binary string as following



BSTR PURL =SysAllocString((BSTR)URL.p);

and call a function in VC++ written in C# dll as following

pIclass1->raw_HTTP_Put_Query (&PURL ,nBufLen,&retVal );





In C# I receive the values as following

public int HTTP_Put_Query(ref string PURL,int nBufLen)

{

....

.....

}





Now, the problem is that the PURL parameter of type "bstr" recieves junk values in the C# dll, the nBufLen variable being of type "int" is getting correct value.

Is there a way I can convert the bstr to string so that it doesnt return junk values?

Would really appreciate much needed help.





Thanks

Rahul


All times are GMT +5.5. The time now is 21:50.