- ふらっと 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#で書いた方が良い
|
|