UDK への C# dll バインドに取り組んでいます。ここでは、bool 値に対して符号なし 32 ビット整数を返す必要があります。したがって、0 は false であり、それより大きい値は true です。UDK は値を取得し、それを true または false に変換します...
私はいくつかのコードを実行していて、これを見つけました:
[DllExport("CheckCaps", CallingConvention = CallingConvention.StdCall)]
public static UInt32 CheckCaps()
{
return ( Console.CapsLock ? 1 : 0);
}
次のエラーが表示されました:
「エラー、タイプ 'int' を 'uint' に暗黙的に変換できません。明示的な変換が存在します (キャストがありませんか?)」
エラーは理解していますが、実行する前にこの問題はありませんでした
if (File.Exists(filepath))
return 1;
else
return 0;
文字列型キャストに関するC#の問題のように見える方法から、これがある場合:
int example = 5;
Console.Writeline( example);
Console.Writeline( example + "");
最初の console.writeline は、C# が文字列への自動型キャストを行わないため、エラーになります。
これらのエラーの背後には論理的な理由があることは理解していますが (これらの状況で発生するため)、Convert.ToUInt32(1) と Convert.ToUInt32(0) を実行する以外にこれを修正する方法はありますか?
(フロートの場合は 0.f にできますが、符号なし整数の場合は同様の修正を望んでいます)