たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

戻り値のマーシャリング

#290
FxCop のコード分析で始めて詳しく知った属性の構文。
MarkBooleanPInvokeArgumentsWithMarshalAs [FxCop Documentation]

C# 言語の仕様 17.2 属性の指定 [MSDN Library]
属性のターゲットは assembly, field, event, method, module, param, property, return, type といろいろだったと。
え、AssemblyInfo.cs の [assembly: ~] は属性だったの!?

結局、例えばこうすればよかったというわけで。
using System.Runtime.InteropServices;

internal sealed class NativeMethods
{
  private NativeMethods() {}
  
  [DllImport("comctl32.dll")]
  [return: MarshalAs(UnmanagedType.Bool)]
  public static extern bool InitCommonControlsEx(INITCOMMONCONTROLSEX icc);

  [StructLayout(LayoutKind.Sequential)]
  public class INITCOMMONCONTROLSEX
  {
    public INITCOMMONCONTROLSEX();
    public int dwSize;
    public int dwICC;
  }
}

一応 MSDN Library にもチュートリアルがあったワ。
プラットフォーム呼び出しチュートリアル [MSDN Library]

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/290-f3502d59
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。