2

これは、投稿 (リンク) から開始された新しいスレッドです。

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 ビットの両方のプロダクション マシンがあります。

4

0 に答える 0