Что лучший способ состоит в том, чтобы создать разработчиков библиотек DLLs for Windows с открытым исходным кодом для использования?

Важным понятием в Си, которое я не изучил у моих учителей, является:

Оператор * не означает «указатель на» (слева). Вместо этого он является оператором разыменования - точно так же, как и в правой части (да, я знаю, что это беспокоит некоторых).

Таким образом:

int *pInt

означает, что когда разыменовывается pInt, вы получаете int. Таким образом, pInt является указателем на int. Или по-другому: * pInt - это int - разыменованный pInt - это int; В этом случае pInt должен быть указателем на int (иначе мы не получили бы int, когда он разыменовывался).

Это означает, что нет необходимости изучать более сложные объявления наизусть:

const char *pChar

* pChar имеет тип const char. Таким образом, pChar является указателем на const char.


char *const pChar

* const pChar имеет тип char. Таким образом, const pChar является указателем на char (сам pChar является константой).


const char * const pChar

* const pChar имеет тип const char. Таким образом, const pChar является указателем на const char (сам pChar является константой).

9
задан dajobe 12 June 2009 в 17:01
поделиться

4 ответа

Вы можете попробовать Mingw с MSYS, Visual Studio (Express) с SUA (подсистема для приложений unix) или Cygwin для компиляции программ, основанных на automake / autoconf (./configure && make to build under Linux).

К сожалению, обычно создаваемый ими файл lib несовместим с другими компиляторами, поэтому, если вы хотите, чтобы ваша библиотека работала с приложением, разработанным с использованием Visual Studio, вам следует использовать подход VSC ++. Обычно многие проекты GNU (проверьте gnuwin32 ) также имеют сценарии сборки, совместимые с VC, которые могут быть скомпилированы с помощью "nmake"

5
ответ дан 4 December 2019 в 21:51
поделиться

You could use MinGW or install the MSVC command line tools from Visual Studio Express.

Either of those can be driven by command line scripts.

I imagine a cross compile from Linux would also work, but I have no idea how easy (or painful) that might be to get going.

This short article shows a simple cross compile of a Windows application & running that app under Wine:

2
ответ дан 4 December 2019 в 21:51
поделиться

Комплект для разработки программного обеспечения Windows включает компилятор Microsoft C / C ++ (только командная строка без визуальных инструментов), поэтому вам даже не понадобится Visual C ++ Express Edition. Windows SDK можно бесплатно загрузить с сайта Microsoft.

1
ответ дан 4 December 2019 в 21:51
поделиться

Если вы используете http://www.cmake.org/ , cmake может создайте Makefile (для Unix) и файл проекта (для Visual Studio). Это то, что, например, используется в проекте KDE.

Компилятор Visual Studio может быть запущен из командной строки Windows с помощью 'devenv / build debug project.csproj' в файле, созданном cmake. Однако для этого требуется Windows (возможно, на виртуальной машине) с установленной (потенциально бесплатной) Visual Studio.

1
ответ дан 4 December 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: