Как рекурсивно искать каталог в C ++ / CLI - PullRequest
0 голосов
/ 26 октября 2011

Погуглил для windows пример рекурсивного поиска, который я нашел this , но, пытаясь скомпилировать его с помощью cl (и цепочки инструментов MSVC ++), компилятор сообщает об ошибке за ошибкой. Нужно ли включать некоторые дополнительные библиотеки напрямую, если я не использую обычную настройку, выполняемую в MSVC ++ GUI.

Опубликованные примеры кодов ошибок переведены и, следовательно, могут выглядеть не так, как на английском.

"*": This referencing cannot be done for System::String the compiler substitutes "*" by 
"^" to continue analysis

и

System::String ^ a system-owned array cannot contain this managed type

обе эти ошибки находятся в этой строке

String* directories[] = Directory::GetDirectories(dir.c_str()); //dir is a usual string

и, следовательно, не является моим кодированием.

Что я испортил?

Строка компиляции была:

cl /w /c /clr file.cpp

1 Ответ

1 голос
/ 26 октября 2011

Directory :: GetDeirectories - это вызов .net, поэтому он возвращает объект .net.Вы пытаетесь привести его к указателю c ++.Лучше всего вместо этого объявить массив строк .net.Тип как то так

array<String^>^ directories = Directory::GetDirectories(dir.c_str());
...