& quot; addin.XLL находится в другом формате & quot; проблема, не могу открыть xll, который я создал сам

Я написал очень простой файл xll в VC ++ 2010, и Excel, который я использую, — это Excel 2007. Библиотека содержит только одну функцию:

extern "C" LPXLOPER12 WINAPI tsMkErr() {
static XLOPER12 x;
x.xltype = xltypeErr;
x.val.err = xlerrNull;
return &x;
}

и необходимая функция xlAutoOpen. Я скомпилировал и dll файл, изменил имя на xll и дважды щелкнул по нему, чтобы открыть в Excel. Все работает так, как я ожидал.

Тем не менее, если я пытаюсь открыть этот файл на другом компьютере, Excel просто продолжает мне сообщать, что:

Файл, который вы пытаетесь открыть, ‘.xll’, имеет другой формат, чем указано в расширении файла. Перед открытием файла убедитесь, что файл не поврежден и поступил из надежного источника. Вы хотите открыть файл сейчас?

Когда я нажимаю да, мусор выскакивает.

Я также пытался загрузить его через диспетчер надстроек. В этом случае я могу открыть файл, но не могу найти свою функцию tsMkErr ().

Буду благодарен всем предложениям …

Кстати, я не знаю, как выбрать ответ в качестве ответа. Если вы знаете, как это сделать, пожалуйста, дайте мне знать 🙂

… Я собираюсь опубликовать свой инструмент на этой неделе … теперь я только что понял, что он работает только на моем компьютере … пожалуйста, помогите … T_T

2

Решение

Сделай себе одолжение и пользуйся http://xll.codeplex.com.

1

Другие решения

Основными причинами являются:

  1. вы пытаетесь открыть xll с неверной архитектурой (например, 32-битный xll с Excel 64-битной)

  2. некоторые внешние dll отсутствуют (см. инструмент Ходок зависимости)
    Обратите внимание, что если вы строите в режиме отладки и пытаетесь открыть его через Visual Studio, в этом случае ваша переменная пути к среде может быть недоступна, и в xll отсутствуют некоторые библиотеки DLL.

1

Возможная причина может быть отсутствие зависимостей (CRT DLL и т. Д.). Вы можете проверить, используя инструмент Dependency Walker.

0

Похоже, вы строите решение в отлаживать Режим. Если вы строите решение в режиме отладки, Visual Studio связывает XLL с библиотекой отладки, которая редко устанавливается на другом компьютере. Поэтому убедитесь, что вы установили конфигурацию сборки на релиз и он должен работать на других компьютерах (если на них установлена ​​обычная распространяемая библиотека ms c ++).

0