Я занимаюсь Си около 20 лет, но никогда не создавал DLL; Я всегда предпочитал статически ссылаться.
Я использую командную строку - cl.exe и т. Д. - и make-файлы gnumake для сборки своих приложений для Windows.
Теперь я хочу собрать DLL, и я в замешательстве.
В конечном итоге я получу как .lib, так и .dll. .Lib содержит код-заглушку, который во время выполнения загружает DLL и использует код в ней.
Я просматривал командные строки для lib и link, и мне не совсем ясно, что именно нужно сделать, чтобы получить этот вывод.
Итак, у меня есть несколько вопросов;
Нужны ли cl дополнительные аргументы, чтобы указать, что он компилируется для DLL? (Я знаю, что для экспортируемых прототипов DLL требуется __declspec (dllexport)).
Я знаю, что в качестве аргумента нужна ссылка / dll.
Буду ли я запускать ссылки lib и , чтобы создать .lib и .dll соответственно, или ссылка создаст оба?
Что еще мне нужно знать?