2012-02-09 4 views
3

Я занимаюсь разработкой моделей на C++ с использованием Visual Studio за последние 5 лет и завернул их в Xll, который будет использоваться с Excel (с использованием xlw). Надстройка Excel - это конечный продукт, который я хочу доставить.Разработка Excel XLL с использованием Mac OS X/Linux

Однако, я считаю, что C++ кодирование лучше с использованием Linux или Mac OS X. Но я также считаю, что использование моих моделей с Excel через Xll также очень практично, но, к сожалению, работает только в Windows.

Так что я хотел бы знать, есть ли способ сделать реализацию на Mac OS X (или Linux), сгенерировать надстройку Excel и использовать ее в Windows.

Единственный способ сделать так, чтобы я сейчас думал о кодировании в Mac OS X, скомпилировать проект без включения части Xll, затем загрузить проект в Visual Studio и скомпилировать его полностью для генерации надстройка Excel. Но, честно говоря, это звучит немного сложно, и я надеюсь на более простой способ.

ответ

1

Это возможно. Вам просто нужно использовать mingw (http://mingw-w64.sourceforge.net/) для компиляции из Linux. Следует отметить, что вы можете использовать g ++ 4.7, который является очень приличным компилятором C++ с поддержкой C++ 11x. Кросс-компиляторы работают как в Mac, так и в Linux, и потому что это gcc, вы можете использовать их с вашей любимой экосистемой инструмента.

Есть несколько неожиданные причуды, но на всякий случай:

  • Не забывайте использовать -Wl, - добавление STDCALL-псевдоним, чтобы получить функции, экспортируемые, без подчеркивания в окончательной DLL.
  • Вместо declspec (__ declexport) использовать __attribute ((dllexport)). Но вы можете также использовать более античный .def trickery, если хотите. В любом случае используйте инструменты Windows sdk «Depends.exe» или аналогичные, чтобы гарантировать, что ваша dll правильно экспортирует имена.
  • Если вы используете виртуальную машину для тестирования или любую новую установку Excel, не забудьте установить все колокола и свистки, которые поставляются с Office и Excel. В противном случае в Excel 2007 и Excel 2010 добавление не будет работать, и вы ошибочно обвиняете свою установку сборки.

Кроме того, если вы используете http://kalx.net/xll/, что действительно может сделать вашу жизнь проще, вам придется обновить эту библиотеку для строгого соответствия C++.

С уважением.

1

Я разработал рабочий пример добавления C++ Excel с использованием Mac OSX, Eclipse CDT и XCode и электронной таблицы, в которой используется добавление. Объяснение здесь http://www.smr.co.uk/excel-addin-on-mac-os-x-using-cdt/ включая версии, используемые и т. Д., И код здесь https://github.com/PollardsEtFilles/MacCPPExcelAddinExample.

Есть два Gotchas

  • Excel 2011 является 32 бит
  • Убедитесь надстройку в том же каталоге, что и таблицы Excel

лязг (в комплекте с Xcode) является хорошей заменой для g ++

Все, что вам нужно сделать, это установить Eclipse CDT и импортировать код, в котором вы будете отсутствовать.

+0

Это не дополнение XLL, а просто дилиб. – Malick