C#からWin32APIを使ってみる

Bonjour!!

 

副業の方で今はC#を触ってるんですけど、こないだC#でC++のライブラリを呼び出すといった内容の

学習で、少しWin32APIを触りました。

いろいろ難しくて、備忘録としてここに残します。

 

 

●C#側での定義

  1. [Dllimport(kernel32.dll)]
  2. extern static bool Beep(uint dwFreq , uint dwDuration)

 

 

●Win32APIの関数定義

BOOL Beep(DWORD dwFreq, DWORD dwDuration);

引数1は音の周波数(37~32767)、引数2は長さ(ms)になります。

 

 

引数のDWORD型はC#ではuintで定義する。

C#で定義する際に対応する型に書き換えて定義する。

 

 

 

例)

 

  1. class BeepFunction
  2. {
  3.     [Dllimport(kernel32.dll)]
  4.     extern static bool Beep(uint dwFreq , uint dwDuration);
  5.     public static void BFunc(){
  6.         BEEP(111 , 200);
  7.         BEEP(222 , 200);
  8.         BEEP(333 , 200);
  9.     }
  10. }

 

 

 

●呼び出し

BeepFunction.Bfunc();

 

これで3種類のブザーが鳴ります。

 

Au revoir!!