Visual C ++: создание DLL с использованием libcurl - PullRequest
2 голосов
/ 22 января 2012

Я разрабатываю dll, которая использует libcurl.После добавления libcurl.dll и libidn-11.dll к зависимостям я получаю libcurl.dll : fatal error LNK1107: invalid or corrupt file: cannot read at 0x308.

PS: я использую MSVS 2010

PPS: я успешно скомпилировал эту dll с помощью компилятора mingw,никаких проблем не было.

Заранее спасибо!

Ответы [ 2 ]

7 голосов
/ 22 января 2012

Есть ли libcurl.lib для сопровождения libcurl.dll? Вы должны связываться с файлом lib, а не с dll напрямую.

3 голосов
/ 22 января 2012

В мире Windows доступ к динамическим библиотекам обычно осуществляется через небольшую заглушку статической библиотеки (.lib).

В VS вы бы связались с файлом .lib, который содержит код, необходимый для загрузки библиотеки DLL во время выполнения.

Вы не можете напрямую ссылаться на .dll.

Если вы привыкли к Linux, это, вероятно, кажется несколько неловким способом сделать это, но это так.

Итак, у вас есть такой файл .lib для вашей библиотеки curl? Если это так, ссылка против этого. Если нет, то использование curl из вашего VS-проекта будет немного больше работы. (Но один из вариантов может заключаться в том, чтобы просто создать curl с VS, который даст вам и .dll, и .lib файл)

...