Ошибка доступа к памяти ctypes
В общем есть dll на c++. Там вот такой код получения дерева файлов:
namespace fs = std::filesystem;
extern "C" __declspec(dllexport) std::string gDirTree(const std::string & path, int level = 0) {
std::string tree;
try {
fs::path p(path); // Преобраз std::string в fs::path
for (const auto& entry : fs::directory_iterator(p)) {
std::string indent(level * 2, ' ');
if (entry.is_directory()) {
tree += indent + entry.path().filename().string() + "/" + "\n";
tree += gDirTree(entry.path().string(), level + 1);
}
else {
tree += indent + entry.path().filename().string() + "\n";
}
}
}
catch (const std::filesystem::filesystem_error& e) {
std::cerr << "fsys err: " << e.what() << std::endl;
}
return tree;
}
в python использовал такой код:
dllpath = "C:/Microsoft/FCS.dll"
path = "C:/Users/user/DimoNULL/desktop"
path_c_char_p = ctypes.c_char_p(path.encode('utf-8'))
FuncsDLL = ctypes.CDLL(dllpath)
gettree = FuncsDLL.gDirTree
gettree.argtypes = [ctypes.c_char_p, ctypes.c_int]
gettree.restype = ctypes.c_char_p
print(gettree(path_c_char_p, 0))
И в итоге получаю эту ошибку: Error occurred: exception: access violation reading 0x00000014 Что я не так сделал?