これは、投稿 (リンク) から開始された新しいスレッドです。
libcurl を dll に組み込むために、提案された curl ライブラリ (リンク) を使用しました。libcurl_imp.lib にリンクし、curl メソッドを呼び出すためのライブラリ ルーチンを作成しました。これはすべてうまくいきますが、64ビットマシンでのみですか? - 同じ dll/バイナリ アプリを 32 ビット XP マシンで実行しようとすると、すぐにダンプされます。実際、すべてのアプリケーションが異常終了します。アプリケーションは新しいライブラリ ルーチンを参照せず、dll を使用するだけです。dll に cURL 呼び出しを組み込んでいるため、生成されたプロセスがすぐに中止されるようです。
1 + 完了(134) testapp
5656 testapp の中止
main の直後に printf ステートメントがありますが、コマンド ラインに出力がありません。
次に、1 つを除いて、すべての新しいライブラリ関数を dll から削除しました。これで行うことは次のとおりです。</p>
CURLcode res = curl_global_init(CURL_GLOBAL_DEFAULT);
この 1 行が原因で、dll に組み込むと、すべてのアプリが 32 ビットで失敗します。コメント アウトすると、すべて動作します。
述べたように、同じ dll/バイナリが私の 64 ビット マシンで正常に動作します。64 ビット マシンには、私の 32 ビット マシンのものと同じ curllib.dll ランタイムがあります。
参考までに、私のビルド マシンは 32 ビットです。32 ビットと 64 ビットの両方のプロダクション マシンがあります。