Ошибка доступа к памяти 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 Что я не так сделал?


Ответы (0 шт):