MsiViewFetch «SELECT * FROM `Property`» выполнен успешно, но возвращает «Неверную функцию». на С++C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 MsiViewFetch «SELECT * FROM `Property`» выполнен успешно, но возвращает «Неверную функцию». на С++

Сообщение Anonymous »


Я хочу прочитать таблицу свойств 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»