Imam veliki problem i hitnoooooo mi treba pomoc. Naime iz C# metode se poziva metoda u C++ kojoj se kao argument dodjeljuje CoreObject co (to je objekat-poruka za SMSC sa odgovarajucim svojstvima, a jedan od njih je text poruke co.UD kao byte[] u ASCII formatu).
Metoda u C++ koristi managed i unmanaged tipove i dio je klase public _gc class BulkInsert
Imam dati dio koda u C++:
BOOL BST_Core::BulkInsert::BindData(CoreObject *co)
{
BYTE* UD = new BYTE[164]; //...unsigned char array
UD = co->UD; //...co->UD je niz bajta iz C#
if (bcp_bind(dbproc, (BYTE*)UD, 0, -1, (BYTE*)"", 1, 0, 17) == FAIL)
{
return FALSE;
}
Moram paziti na ovaj format (BYTE*)UD, jer samo tako ga mogu proslijediti fiji bcp_bind, koja salje red odgovarajucoj koloni u SQL Server-u 2000, cija je kolona tipa BINARY u koju se upisuje text SMS poruke.
Prakticki ja trebam kopirati sadrzaj byte[] array-a co.UD iz C++ u ovaj niz BYTE *UD = new BYTE[164], vodeci racuna da se mixa manaded i unmanaged code.
Kada izbildam projekat, dobijem sljedecu poruku
e:\SMSC_version\FIN-2006-04-20-SMC_2_Uskladjena\BulkInsert\BulkInsert.cpp(320): error C2440: '=' : cannot convert from 'unsigned char __gc[]' to 'BYTE *'
Can only convert a __gc array to or from Object * or Array *