今日は文字列を扱います
警告がエラーになってて動かないので
警告を無視しますw本当はダメなんすけどね
プロジェクトプロパティで:プロジェクト右クリック → プロパティ
C/C++ → プリプロセッサ → プリプロセッサ定義 に追加:
_CRT_SECURE_NO_WARNINGS
適用 → OK → 再ビルド
//dllmain.cpp
#include <windows.h>
#include "hsp3plugin.h"
// extern "C" で名前修飾なし、__declspec(dllexport) でエクスポート
extern "C" __declspec(dllexport) int __stdcall add(int a, int b) {
return a + b;
}
extern "C" __declspec(dllexport) int __stdcall mul2(int a) {
return a * 2;
}
// 新しい関数: 2つの文字列を連結する
extern "C" __declspec(dllexport) void __stdcall concat(char* s1, char* s2) {
strcat(s1, s2); // s2を追加
return;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {
return TRUE;
}
AIのエーさんは文字列演算も返す方針だったんすけど
上手くいかなくて
試しに引数演算にしたら動きました
ツール→コマンドライン→開発者コマンドプロンプト
cd C:\hsp3dll\TestHspDll\TestHspDll\Release
とかでフォルダ移動して
dumpbin /exports TestHspDll.dll
で命令が3つ表示されてればOK
#uselib "TestHspDll.dll" ; DLL名そのまま #cfunc add "_add@8" int,int ; ← dumpbinの名前を""で指定 #cfunc mul2 "_mul2@4" int #func concat "_concat@8" var,str ; ← 新しい関数登録(str型指定) ; テスト mes add(15, 27) ; 42 mes mul2(100) ; 200 sdim s1,256 sdim s2,256 s1 = "abc"; s2 = "def" concat s1,s2 mes s1 stop
先日はvisualC++の操作が多かったんですが
今日は大体操作してるんで少なめw
ではでは
AIサポートGrok様 2025/12

コメント