トップページ > プログラム > 2016年05月13日 > obLTuM3w

書き込み順位&時間帯一覧

18 位/188 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000110013



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
Xamarin Part1

書き込みレス一覧

ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
441 :デフォルトの名無しさん[sage]:2016/05/13(金) 19:52:57.73 ID:obLTuM3w
bool型の値をVisual C++ 2015で作ったDLLからC#に渡すと何故かfalseがtrueになって100%動作がおかしくなる箇所があります

C++のDLLのコードの最適化を無効にすると正常に動作します
デバッガーで値を見たり、printfするとC++上ではfalseなのが分かりますが
C#で何故かtrueに変わります

Mono for Windowsで実行すると同じDLLでも別になんとも無いです

P/Invokeを直接ではなくGetFunctionPointerForDelegateを使ってC用の関数ポインタに変換してDLL側から呼ばせてます
ふらっと C#,C♯,C#(初心者用) Part120 [無断転載禁止]©2ch.net
442 :デフォルトの名無しさん[sage]:2016/05/13(金) 20:10:42.31 ID:obLTuM3w
すいません[MarshalAs(UnmanagedType.I1)]をデリゲートのbool型の引数につけたらちゃんと動きました
どうしてそうなったのか、C#だとboolは4バイトらしいです

なぜmonoだと動いたのかとかが謎ですが
Xamarin Part1
357 :デフォルトの名無しさん[sage]:2016/05/13(金) 23:25:36.38 ID:obLTuM3w
ILオンリーのアセンブリにするならC++/CLIで書く意味ないよな
既存の物でコード流用したいならまだしも新規ならC#で書いた方が良い


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。