私はbool値の符号なし32ビット整数を返さなければならないUDKへのC#dllバインドに取り組んでいます。本当です。 UDKは値を取得し、trueまたはfalseのいずれかに変換し...UInt32とInt32 - 考えている0と1はInt32です。
私はいくつかのコードを実行すると、この発見された:
「エラー:
[DllExport("CheckCaps", CallingConvention = CallingConvention.StdCall)] public static UInt32 CheckCaps() { return (Console.CapsLock ? 1 : 0); }
は私のエラーを与えたが、暗黙のうちに「UINT」にタイプ「int型」を変換できません、私はエラーを理解しながら。明示的 変換は、(あなたはキャストが欠けている?)」
存在しますC#のため
int example = 5;
Console.Writeline(example);
Console.Writeline(example + "");
最初Console.WriteLineをエラーを与える:私はあなたがこれを持っている場合、それは文字列型キャストとC#の問題のように見える方法で、より
if (File.Exists(filepath))
return 1;
else
return 0;
を行う前に、この問題を持っていませんでし文字列へのキャストオートメーションが行われません
これらのエラーの背後に論理的な理由があることは理解していますが、Convert.ToUInt32(1)とConvert以外の修正方法があります。 ToUInt32(0)?
(私はあなたがフロートのため0.fに行くことができる方法に似修正のために願っていますが、符号なしintergers用)
IDEとコンパイラの違いを知ってください。 Visual Studioは何も考えていません。これは単に複数の異なる言語とコンパイラをホストする開発環境であるためです。問題はC#であり、* Visual Studioではありません。この区別は重要です。 –
申し訳ありません、私はそれを理解しています。それは私が怠け者だった...私は –