Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
C#⇒C++/FuncDLL
C#⇒DLL(HelloMsg)
C# から C/C++ で HelloMsg 関数を登録した DLL を呼び出します。
前田稔(Maeda Minoru)の超初心者のプログラム入門


プロジェクトの説明
- DLL が使えるようになると、一挙に多くの協力者を得ることになり、何故か「とってもプログラムがうまくなった」ような気がします。 \(^o^)/
C/C++ の Normal Mode で作成した DLL を C# から呼び出します。
マネージドでは「Class を登録する」のが基本ですが、CLI Normal Mode(CLR プロジェクト)では Classも関数も登録可能 です。
呼び出される DLL の作成方法は DLL Normal Hello を参照して下さい。
- 「空のプロジェクト」から作成して、Dll.dll を格納します。
- Console.cs を格納してプロジェクトに組み込んで下さい。
Console.cs のソースコードです。
[DllImport()] と static extern で関数のエントリーアドレスを取得します。
/*★ C# から HelloMsg() を呼び出す 前田 稔 ★*/
//Console.cs
using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
class console
{
[DllImport("Dll.dll")]
static extern void HelloMsg();
public static int Main()
{
HelloMsg();
Console.ReadLine();
return 0;
}
}
|
- Visual Studio .NET を起動します。
ソリューション・エクスプローラで「参照設定」を右クリックし「参照の追加」を選択します。
参照の追加から[参照]タグを選び、Dll.dll を組み込みます。
参照設定の配下に Dll が追加されます。
画像は容量節約のため他のページと共有しているので、説明とは必ずしも一致しない場合があります。

- [プロジェクト(P)][Console のプロパティ(P)][ビルド][プラットホームターゲット(G)] から「x86」を選択します。
これは C/C++ で作成した DLL が32ビットモードなので、これに合わせる為です。
プロジェクトを実行すると "Hello DLL" が表示されます。

超初心者のプログラム入門(C# Frame Work)

※・