У меня возникают проблемы с использованием 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 для этого, если это имеет значение.Любые идеи высоко ценится!