Utilizzo Dll in C#

martedì 18 novembre 2008 - 13.05

and87 Profilo | Newbie

Ciao Ragazzi, allora ho implementato in Visual C++ la seguente libreria:
Code PlayerDll.h
using namespace System; namespace PlayerDll { public ref class CPlayerDll { public: void Login(LPCTSTR lpUserName, LPCTSTR lpPassword); }; }
nel file .cpp ho questo codice:
void PlayerDll::CPlayerDll::Login(LPCTSTR lpUserName, LPCTSTR lpPassword) { int returnValue = 0; returnValue = ReturnValue(user,pwd); if( returnValue ) { //login OK } else { //ERRORE } } }

Nella form dove la devo utilizzare devo mandare lo user e la pwd. Ma il problema sorge nel momento in cui provo a fare:
PlayerDll.CPlayerDll play = new PlayerDll.CPlayerDll(); play.Login(.................); //qui lui vuole 2 char*
Come faccio a passare questi due valori? io ho provato con String e StringBuilder ma non funziona,in compilazione mi dice:
"impossibile convertire da 'System.Text.StringBuilder' a 'char*' "

Come posso risolvere?
Grazie

0v3rCl0ck Profilo | Guru

Ciao,

Provato con String.ToCharArray()

Documentazione del metodo: http://msdn.microsoft.com/en-us/library/ezftk57x.aspx

Con lo StringBuilder:

StringBuilder.ToString().ToCharArray()

Enjoy It

- Michael -
http://blogs.dotnethell.it/Regulator/

and87 Profilo | Newbie

Si provato e mi dice impossibile convertire da char[] a char*

0v3rCl0ck Profilo | Guru

ahhhh scusa, ho visto adesso char*, ti serve il puntatore...Non so perchè vedevo array

Prova:

IntPtr ptrString = System.Runtime.InteropServices.Marshal.StringToHGlobalAnsi("");

Documentazione di Marshal:

http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal_members(VS.80).aspx

C'è anche il metodo StringToBSTR, guarda sulla documentazione quello che più fa al tuo caso.

Ci sono poi anche i metodi inversi, da un IntPtr unmanage avere la stringa managed.

Enjoy It

- Michael -
http://blogs.dotnethell.it/Regulator/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5