開始点: ws2_32.lib にリンクするサード パーティの静的ライブラリにリンクする C++ コードがいくつかあります。
目標: この C++ コードを、基本的に Win32 プラットフォームである組み込みプラットフォームに移植する方法を調査しています。ただし、DLL は許可されておらず、独自の UDP プロトコルが実装されています。
戦略: winsock API (または少なくとも私が関心のあるこの API のサブセット) を模倣する静的ライブラリを作成したいと考えています。これらの関連する winsock 関数は、組み込みプラットフォームでサポートされている独自の UDP 関数呼び出しへのラッパーとして機能します。
前提: ws2_32.lib ではなく、この静的ライブラリを最終的な実行可能ファイルにリンクできます。
質問:
- 私の仮定は正しい/合理的ですか?
- リンクを機械的に設定するにはどうすればよいですか?
私がやったこと: 私は 1 つの機能だけでそうしようとしましたが、リンクできないようです。これは、静的ライブラリで定義したものです。
unsigned short __stdcall htons(unsigned short hostshort) {
return hostshort;
}
リンクすると、次のエラーが表示されます。
: error LNK2001: unresolved external symbol __imp__htons@4
リンク メッセージのこの__imp__
接頭辞は、私にはよくわかりません。dll で定義されている関数の名前は特別な方法で変更されますか? スタティック ライブラリでこれを偽造して、リンカに ws2_32.lib の関数ではなく、自分のバージョンの関数とリンクさせることはできますか?
どんな助けでも大歓迎です。