Witam.
Próbuję wywołać metody biblioteki napisanej w C++ w swojej aplikacji C# (.NET 4.0).
Mam problem z konwersją parametru wywołania, mianowicie:
W dll'ce mam zdefiniowaną metodę:
void* __stdcall POS_SetDeviceParam ( void* hDevice, unsigned long paramCode, void * paramValue )
Przykładowy kod źródłowy w C++ wywołuje tą metodę następująco:
void *hDevice=NULL;
string comparams="COM1,9600,8,N,1,H";
POS_SetDeviceParam(hDevice,POSNET_DEV_PARAM_COMSETTINGS,(void*)comparams.c_str());
Mam problem z parametrem "paramValue" w C#. Próbuje zadeklarować tą metodę jako StringBuilder:
[DllImport("libposcmbth.dll", EntryPoint = "POS_SetDeviceParam", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall)]
public static extern uint POS_SetDeviceParam(IntPtr hDevice, uint paramCode, StringBuilder paramValue);
Ale przy takiej deklaracji wygląda to tak jakby przekazywane było tylko pierwszy znak ze stringa.
W jaki sposób mam zadeklarować wywołanie tej metody w C#.
Z góry dziękuję za pomoc.