내가 내 const char** fileList
std:vector<std::string>
에 변환 할 수있는 방법 C#변환 ** 성병 : 벡터 <std::string>
extern "C" {
LIBRARY_API void GenerateTables(
const char* version,
const char* baseDir,
const char** fileList);
} // end extern "C"
void GenerateTables(
const char* version,
const char* baseDir,
const char** fileList)
{
std::string strVersion(version);
std::string strBaseDir(baseDir);
// I now need to convert my const char** to std::vector<std::string>
// so it can be passed to another internal method.
}
내 C++ 코드를 노출하기 위해 다음과 같은 래퍼가 있습니다. 저는 C++에 비교적 익숙하지 않습니다. 여기에 메모리 할당에 대한 명확한 문제가 있습니다. 나는
std::vector<std::string> vec;
for (int i = 0; i < fileList.length() /* length() of what!? */; i++)
vec.push_back(/* what!? */);
어떻게 필요한 변환을 수행하고 상호 운용성을 통해 C++로 C에서 # 문자열 (string[]
)의 배열에 전달하는 더 나은 방법이있을 수 있습니다 뭔가를 할 수 있을까?
감사합니다.
목록이 NULL 포인터로 종료된다고 가정해야합니까? – WhozCraig
배열의 길이를 결정하기위한 프로토콜이 필요합니다. 이게 뭐야? –
필자는'fileList' 변수에 문자열의 개수를 만들기를 희망했습니다. 그래서 C 배열을fileList = new List {/ * some list * /};와 ToArray()를 사용하여 배열을 interop 메서드에 전달하기 전에. 내가 말했듯이, 나는 전에 이것을 한 적이 없기 때문에 다른 방법들에 열려있다. 디렉토리를 사용하여'fileList'를 얻는 것이 가능합니다. 그래서 하나의 폴더에 모두 들어 있기 때문에 필요한 파일 경로를 얻기 위해 사용되는 디렉토리 경로를 가지고있는 또 다른'const char *'를 전달할 수 있습니까? –
MoonKnight