MsiViewFetch «SELECT * FROM `Property`» выполнен успешно, но возвращает «Неверную функцию». на С++ ⇐ C++
MsiViewFetch «SELECT * FROM `Property`» выполнен успешно, но возвращает «Неверную функцию». на С++
Я хочу прочитать таблицу свойств msi-файла. Таблица показана правильно.
Это вызов и (часть) вывода:
>ЧитатьMsiProperties.exe evince-2.32.0.145.msi (MsiOpenDatabase. Операция завершена успешно.) (MsiViewFetch Неверная функция.) WixAppFolder = WixPerUserFolder (MsiViewFetch Неверная функция.) WixUIRMOption = UseRM (MsiViewFetch Неверная функция.) WIXUI_INSTALLDIR = APPLICATIONFOLDER (MsiViewFetch Неверная функция.) ALLUSERS = 2 MsiViewFetch выполнен успешно, но возвращает «Неверная функция». Это код ошибки 1 (ERROR_INVALID_FUNCTION) из winerror.h
Я предполагаю, что что-то упустил и не хочу игнорировать ошибку.
Я пытался выполнить отладку, но, похоже, не могу выполнить отладку в MsiViewFetch.
У кого-нибудь есть подсказка?
Спасибо, Маркус
Это код:
// Требования: добавьте Msi.lib в «Файлы ресурсов». #include "stdafx.h" #include #include #include МСИРУЧКА HDB; MSIHANDLE hViewSELECT; MSIHANDLE hRecord; TCHAR svPropname[256]; TCHAR svPropvalue[256]; DWORD nБуфер; Ошибка UINTI; _TCHAR ошибкаM[256]; void errorCode2char (ошибка UINT, _TCHAR *buf) { FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, ошибка, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, 256, NULL); // отрезаем \r\n if (buf[_tcslen(buf)-1] = '\n') buf[_tcslen(buf)-1] = '\0'; if (buf[_tcslen(buf)-1] = '\r') buf[_tcslen(buf)-1] = '\0'; } void _tmain(int argc, _TCHAR* argv[]) { errorI = MsiOpenDatabase(argv[1], MSIDBOPEN_READONLY, &hDB); errorCode2char(errorI, errorM); printf("(MsiOpenDatabase %S)\n", errorM); если (ошибка! = ERROR_SUCCESS) возврат; MsiDatabaseOpenView(hDB, _T("ВЫБЕРИТЕ `Свойство`, `Значение` ИЗ `Свойства`"), &hViewSELECT); MsiViewExecute (hViewSELECT, NULL); while (errorI = MsiViewFetch (hViewSELECT, &hRecord) != ERROR_NO_MORE_ITEMS) { // *errorI
Я хочу прочитать таблицу свойств msi-файла. Таблица показана правильно.
Это вызов и (часть) вывода:
>ЧитатьMsiProperties.exe evince-2.32.0.145.msi (MsiOpenDatabase. Операция завершена успешно.) (MsiViewFetch Неверная функция.) WixAppFolder = WixPerUserFolder (MsiViewFetch Неверная функция.) WixUIRMOption = UseRM (MsiViewFetch Неверная функция.) WIXUI_INSTALLDIR = APPLICATIONFOLDER (MsiViewFetch Неверная функция.) ALLUSERS = 2 MsiViewFetch выполнен успешно, но возвращает «Неверная функция». Это код ошибки 1 (ERROR_INVALID_FUNCTION) из winerror.h
Я предполагаю, что что-то упустил и не хочу игнорировать ошибку.
Я пытался выполнить отладку, но, похоже, не могу выполнить отладку в MsiViewFetch.
У кого-нибудь есть подсказка?
Спасибо, Маркус
Это код:
// Требования: добавьте Msi.lib в «Файлы ресурсов». #include "stdafx.h" #include #include #include МСИРУЧКА HDB; MSIHANDLE hViewSELECT; MSIHANDLE hRecord; TCHAR svPropname[256]; TCHAR svPropvalue[256]; DWORD nБуфер; Ошибка UINTI; _TCHAR ошибкаM[256]; void errorCode2char (ошибка UINT, _TCHAR *buf) { FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, ошибка, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), buf, 256, NULL); // отрезаем \r\n if (buf[_tcslen(buf)-1] = '\n') buf[_tcslen(buf)-1] = '\0'; if (buf[_tcslen(buf)-1] = '\r') buf[_tcslen(buf)-1] = '\0'; } void _tmain(int argc, _TCHAR* argv[]) { errorI = MsiOpenDatabase(argv[1], MSIDBOPEN_READONLY, &hDB); errorCode2char(errorI, errorM); printf("(MsiOpenDatabase %S)\n", errorM); если (ошибка! = ERROR_SUCCESS) возврат; MsiDatabaseOpenView(hDB, _T("ВЫБЕРИТЕ `Свойство`, `Значение` ИЗ `Свойства`"), &hViewSELECT); MsiViewExecute (hViewSELECT, NULL); while (errorI = MsiViewFetch (hViewSELECT, &hRecord) != ERROR_NO_MORE_ITEMS) { // *errorI
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Подпроцесс установки Pip для установки зависимостей сборки не был выполнен успешно
Anonymous » » в форуме Python - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-