Использование COM с C - PullRequest
       8

Использование COM с C

2 голосов
/ 04 июня 2019

У меня возникают проблемы с использованием COM из программы на C, когда я вызываю функции для объекта, я получаю

Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.

Что говорит о том, что я использую неправильное соглашение о вызовах, но не уверен, как я диагностирую или исправляю эту проблему.

Вот код, который я написал, чтобы проверить это:

#include <shlobj.h>

int main()
{
    IProgressDialog* dialog = NULL;

    HRESULT hr = 0;
    hr = CoInitialize(NULL);

    hr = CoCreateInstance(&CLSID_ProgressDialog, NULL, CLSCTX_INPROC_SERVER, &IID_IProgressDialog, &dialog);

    hr = dialog->lpVtbl->SetTitle(dialog, L"Progress"); // this line causes the run time check failure

Я использую VS2019 для этого, если это имеет значение.Любые идеи высоко ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...