2014-11-02 4 views
0

Рассмотрим следующий код (который работает!):Native Dll вызовов с CStringArray

int SetInputFile(const CString& fileName); 

int SetInputFile(System::String^ fileName) 
{ 
     const char* str = (char*)(void*)Marshal::StringToHGlobalAnsi(fileName); 
     return m_Native->SetInputFile(str); 
} 

Как обрабатывать/преобразовать случай с этим входом?

int SetInputFiles(const CStringArray& fileNames); 
+0

Вы не можете вызвать метод с параметром 'CStringArray' из C#. C# не знает, что такое 'CStringArray'. Переработайте собственный метод, чтобы сделать его доступным из C#. –

+0

Alex Farber - Как изменить на Const CString & [] с длиной в дополнение? –

+0

Та же ошибка - 'CString' не будет работать. C# может обрабатывать только простые типы (например, int, char), простые строки C-стиля (например, char *, wchar_t *), массивы и структуры, содержащие эти типы. Не пытайтесь использовать типы MFC в interop-коде. –

ответ

0

Спасибо Алекс Фарбер и Nostromoo После поиска в Интернете - я не смог найти и такое преобразование. Там для меня интерфейс изменился, чтобы получить список строк в const CString & с символом seperator. Естественно, ваши предложения также являются хорошими и актуальными решениями.

Смежные вопросы