Я получаю различные ошибки, которые всегда связаны с памятью (этот текущий набор вызывает исключение нарушения памяти), когда я передаю указатель на функцию.
Я пробовал различные реализации, чтобы решить проблему, но ничего не помогло.
Вот код:
В классе:
class OpenFileDialog {
public:
OpenFileDialog();
~OpenFileDialog();
static bool BrowseFiles(wstring* fileName) {
OPENFILENAMEW ofn;
//ZeroMemory(fileName,sizeof(fileName));
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(ofn);
ofn.hwndOwner = NULL;
ofn.lpstrFilter = _T("All\0*.*\0Text\0*.txt\0");
ofn.lpstrFile = LPWSTR((*fileName).c_str());
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = _T("Select a File!");
ofn.Flags = OFN_DONTADDTORECENT | OFN_FILEMUSTEXIST;
if (GetOpenFileNameW(&ofn)) {
return true;
} else {
return false;
}
}};
Вызов метода:
try {
wstring fileName;
if (OpenFileDialog::BrowseFiles(&fileName)) {
A(fileName); // erros here
} else {
A(_T("Failed"));
}
} catch (bad_alloc) {
A(L"Bad allocation");
}