2011-03-11 8 views
1

私はC#GUIで.NET .DLLでラップされたネイティブの.DLLライブラリを使用するソリューションを持っています。デバッグモードが機能します。リリースモードでは多くのエラーが生成されます。

すべて私の配管は、デバッグモードでうまく動作します。私がリリースモードに入るのを試みると、私はエラーメッセージの大部分を取得します。主にネイティブライブラリの.CPPファイルと関係します。エラーは、次のものがあります。

  1. TRACE_DEBUG_METHOD_CALL許可されていないDLLIMPORT関数の定義:(:DLLAPI_Release:宣言されていない識別子など)
識別子が
  • 私のメインの.CPPファイルで宣言されていない識別子の多くを発見していません

    私は、C/C++プロジェクトのプロパティ設定が圧倒的であることを認めなければならないので、単純に変更する必要がある簡単な設定があるかどうか疑問に思います。

    また、VS2010のプロジェクトのプロパティウィンドウに特化した書籍がありますか?私はいくつかの本を持っていますが、真剣なアプリケーション開発にとって非常に重要な要素であることは明らかです。

    誰もが提供できる援助に感謝します。ありがとう!

  • +0

    VC++は強力で、多くの設定プロパティがあります。:)何かに答えるには、少なくともネイティブDLLからエンティティをエクスポート/インポートする方法を私たちに見せてください。 –

    +0

    愚かな質問かもしれませんが、リリースモードに変更した後で実際にソリューションを構築しようとしましたか?私はときどきモードを切り替えるときに多くのエラーを取得しますが、これらはすぐに私がビルドするようになります。 –

    答えて

    1

    プロパティページを比較しようとすると、ビートになる可能性があります。あなたのプロジェクトのプロパティページを開き、デバッグ設定を選択し、 "C/C++"で "コマンドライン"を選択し、コマンドラインオプションをテキストエディタにコピーしてから、リリース設定彼らがどこで違うのか見てみましょう。 「リンカ」コマンドラインでも同じことをする必要があります。

    いくつかの相違点は意図的です(たとえば、デバッグ設定にデバッグフラグを設定する必要があります)が、同じではないものを見つけることができます。

    実際にコマンドラインオプションが設定されている場所を追跡することは、特にプロパティシートを使用してプロジェクト間の共通プロパティを管理している場合には痛いかもしれませんが、一般的に見ていくだけでそれらを追跡できるはずです異なるページのさまざまなオプション。

    参考までに、MSDNの実際のコンパイラドキュメントを参考にしてください。セクションにはall of the documented compiler optionsが含まれ、1つにはall of the documented linker optionsが含まれます。

    プロパティページは、これらのさまざまなオプションを設定するための単なるGUIフロントエンドです。プロパティページでプロパティの1つを選択すると、ダイアログの下部にあるヘルプボックスに、そのプロパティで使用されるコンパイラオプションが表示されます。

    2

    設定を変更しても、リリースビルドに変更されていない場合は、これは起こりそうにありません。とにかく、初めて忘れやすい。どの設定がデフォルトから変更されたかは簡単にわかります。太字で表示されます。設定ページをステップ実行し、左上隅のConfigurationコンボボックスで前後にフリップします。

    リリースビルドの設定がの場合はにする必要があるため、思考時間を数えずに約15分です。 Visual Studioの別のインスタンスをダミープロジェクトで起動して確認します。

    +0

    これらの提案に感謝します。デバッグ構成で設定されたリリース構成にプリプロセッサがないことが判明しました。トレースポイントを使用して置き換えるいくつかのデバッグについても、#defineの競合がありました。すべてが今働いており、とても安心しています。再度、感謝します! –

    関連する問題