プロが教える店舗&オフィスのセキュリティ対策術

Visual Studio .NET2003を使ってます.

普段GUIでビルドしているのですが,
それをコマンドプロンプトからclとlinkコマンドでやろうと思いました.

プロジェクトのプロパティの
「C/C++」と「リンク」それぞれの「コマンドライン」というところで確認できるオプションを
それぞれそのままclとlinkの後ろにコピペして実行しました.
(clの方はソースファイルも最後に追加して.)

ところが,出来上がったDLLの挙動が,
GUIでビルドした場合と違っています.
(JNIでJavaから呼び出しているのですが,
コマンドプロンプトから実行した方は呼び出すときにエラーを出します.)

GUIでやろうがコマンドラインからやろうが
同じ挙動になると思っていたのですが,
必ずしもそうではないのでしょうか.
用意した環境の不備など何かの見落としによりありえるのでしょうか.
アドバイス頂ける方いらっしゃいましたら,お願い致します.

A 回答 (1件)

>GUIでやろうがコマンドラインからやろうが


>同じ挙動になると思っていたのですが,

同じ挙動はしません。

GUIコンパイラと、コマンドプロンプトで起動するコンパイラは、オプションのデフォルト値が違います。

GUIコンパイラは、フォームアプリケーションやDLLをコンパイルするのに合わせたデフォルト値になっています。

しかし、コマンドプロンプトで起動するコンパイラclは、コンソールアプリケーションをコンパイルするのに合わせたデフォルト値になっています。

なので、プロジェクトのコマンドラインをそのまま書き写しただけでは、コンパイラは異なる動きをして、正常に動作しない不完全なターゲットファイルを生成する筈です。

この回答への補足

ご回答ありがとうございます.

これ以上踏み込むつもりはないのですが,
ではそのデフォルト値を変更するオプションがあり,
プロジェクトのコマンドラインを書き写したものに
それを加えたら,同一になるということでしょうか?

補足日時:2009/01/29 10:34
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!