У меня есть 2 проекта VS в отдельных решениях. Первый dll, второй xll пытается вызвать функцию из первого. Excel компилируется без ошибок
"The file you are trying to open, 'test.xll', is in a different format than specified by the file extension. Verify that the file is not corrupted and is from a trusted source before opening the file. Do you want to open the file now?"
и если я нажимаю да, я вижу кучу китайских букв. Если я не вызываю функцию из проекта dll, то xll работает правильно. Что я делаю неправильно? Использование VS2010 и Excel 2010 x86.
Первый — это проект DLL
square.cpp
double _stdcall square (double &x) {
return x * x;
}
square.h
#pragma once
__declspec(dllexport) double _stdcall square (double &x);
Второй проект — проект XLL
static AddIn xai_exp(
"?xll_exp", XLL_DOUBLE XLL_DOUBLE,
"XLL.EXP", "Number");
double WINAPI xll_exp(double number) {
#pragma XLLEXPORT
return square(number);
}
Я также сделал defFile для тестирования VBA, но я не думаю, что он нужен здесь.
Ошибка, которую вы описываете, появляется, когда dll, которая используется вашим xll, не найдена на компьютере. Поэтому вы должны убедиться, что dll доступна для вашего xll.