「ライブラリの基礎 - C++DLL」の版間の差分
ナビゲーションに移動
検索に移動
→サンプルコード
83行目: | 83行目: | ||
void __stdcall SampleFunc02(int a, char *pstr) | void __stdcall SampleFunc02(int a, char *pstr) | ||
void __stdcall SampleFunc03(int a, char *pstr) | void __stdcall SampleFunc03(int a, char *pstr) | ||
void __stdcall SampleFunc04(SampleStruct st) | |||
</source> | </source> | ||
<source lang="c++"> | <source lang="c++"> | ||
107行目: | 108行目: | ||
} | } | ||
void __stdcall | void __stdcall SampleFunc02(int a, char *pstr) | ||
{ | { | ||
printf("--<SampleDll:SampleFunc02>--\r\n"); | printf("--<SampleDll:SampleFunc02>--\r\n"); | ||
119行目: | 120行目: | ||
printf("[%d] %s\r\n", a, str); | printf("[%d] %s\r\n", a, str); | ||
sprintf_s(str, 256, "C++ DLL側から文字列を返す場合は、StringBuilderクラスを使用する"); | sprintf_s(str, 256, "C++ DLL側から文字列を返す場合は、StringBuilderクラスを使用する"); | ||
printf("------------------------\r\n"); | |||
} | |||
void __stdcall SampleFunc04(SampleStruct st) | |||
{ | |||
printf("--<SampleDll:Sample04>--\r\n"); | |||
printf("index = %d\r\n", st.index); | |||
printf("name = %s\r\n", st.name); | |||
printf("data[0] = %d, data[1] = %d, data[2] = %d, data[3] = %d\r\n", st.data[0], st.data[1], st.data[2], st.data[3]); | |||
printf("------------------------\r\n"); | printf("------------------------\r\n"); | ||
} | } | ||
132行目: | 142行目: | ||
SampleFunc02 @2 | SampleFunc02 @2 | ||
SampleFunc03 @3 | SampleFunc03 @3 | ||
SampleFunc04 @4 | |||
</source> | </source> | ||
<br> | <br> | ||
166行目: | 177行目: | ||
private static extern void SampleFunc03(int a, StringBuilder str); | private static extern void SampleFunc03(int a, StringBuilder str); | ||
/// <summary> | /// <summary> | ||
/// 構造体を引数に持つ関数のインポート例 | /// 構造体を引数に持つ関数のインポート例 | ||
/// </summary> | /// </summary> | ||
212行目: | 223行目: | ||
SampleFunc03(3, strb); | SampleFunc03(3, strb); | ||
Console.WriteLine(strb); | Console.WriteLine(strb); | ||
var structHoge = new SampleStruct() | |||
{ | |||
index = 4, | |||
name = "構造体サンプル", | |||
data = new int[50], | |||
}; | |||
structHoge.data[0] = 11; | |||
structHoge.data[1] = 22; | |||
structHoge.data[2] = 33; | |||
SampleFunc04(structHoge); | |||
Console.ReadKey(); | Console.ReadKey(); |