8


0

コンパイラエラーD8045が発生しました。 Cファイル 'serialcommands.c’を/ clrオプション付きでコンパイルすることはできません。

このファイルは、シリアルポート経由でTIプロセッサと通信するために作成されたCライブラリです。 私がする必要があるタスクはCLRラッパーでこのライブラリをラップすることです(CLI質問からのいくつかのより簡単なポイントがほしいと思えば前後にデータのマーシャリングに関してstackoverflowに投稿される追加質問があるでしょう。)

CLRラッパーからこのCライブラリを使いたいだけです。 [プロパティ] - > [構成プロパティ] - > [C / C] - > [一般] - > [共通言語ランタイムサポートでコンパイル] = [共通言語ランタイムサポートなし]

これはこれを行う正しい方法ですか? 後で厄介な奇妙なバグが発生するのでしょうか、それともこれを使用するために必要なことは他にありますか?

1 Answer


12


はい。 clrはクラスとオブジェクトしか理解できないため、/ CLRなしでCオブジェクトをコンパイルする必要があります。

あなたはまだあなたの "refクラス"オブジェクトの中に包まれたあなたのC / CLIプロジェクトからそれらを使うことができます。 これは、.NETオブジェクトでC APIをラップする通常の方法です。