私は、.NETを使用してC#でWindowsアプリケーションをプログラミングし始めたばかりのC++プログラマーです。C#で定義を「インクルード」するにはどうすればよいですか?
私は、MSDNで、いくつかのサンプルコード(https://msdn.microsoft.com/en-us/library/chf6fbt4.aspx)を見ていると私は、次の(部分)コード参照:だから変数LOGON32_PROVIDER_DEFAULT
とLOGON32_LOGON_INTERACTIVE
が明示的に例のコードで定義されている
const int LOGON32_PROVIDER_DEFAULT = 0;
//This parameter causes LogonUser to create a primary token.
const int LOGON32_LOGON_INTERACTIVE = 2;
// Call LogonUser to obtain a handle to an access token.
bool returnValue = LogonUser(userName, domainName, Console.ReadLine(),
LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out safeTokenHandle);
を。
#define LOGON32_LOGON_INTERACTIVE 2
#define LOGON32_LOGON_NETWORK 3
#define LOGON32_LOGON_BATCH 4
#define LOGON32_LOGON_SERVICE 5
#define LOGON32_LOGON_UNLOCK 7
C#でのものと同じタイプを行う方法があります:これとは対照的に、場合、私は、私はちょうど、すでにこれらの変数を定義しているWinbase.hが含まれている可能性がC++でこれを書いていましたか?だから、私はそれを自分でC#コードで定義することなくLOGON32_LOGON_INTERACTIVE
を使用できるいくつかの魔法がありますか?私はヘッダーを再利用することで意味がありませんが、どのように一般的なC#で行われます。これらの値を手動で貼り付けなければならないと、かなりエラーが発生するようです。その上に、これらの定義で入力した人がやった苦労を完全には理解できませんでした!
通常、Windowsライブラリとやり取りするとき、誰かがhttp://www.pinvoke.net(win32 /その他のアンマネージドAPIとのやりとりを文書化する目的で特にwiki)で既に作業を終えています。例:http://www.pinvoke.net/default.aspx/advapi32.logonuser(このページの「C#ユーザ定義型」を参照) – spender
特定のC \ C++ヘッダファイルを再利用することは、 C#から、またはそれがどのように行われているかは、C#では一般的です。 – Evk
私は後で言います。これは通常どのようにC#で行われますか? – Frank