加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
阅读了原来论坛上关于第三方 RGSS Player 的内容,终于用我贫瘠的 C++ 知识搞出了这个:
#include <windows.h> using namespace std; typedef int(*RGSSEval)(const char* pScripts); static RGSSEval pRGSSEval = NULL; static HMODULE hRgssCore = NULL; extern "C" { __declspec(dllexport) void run(void); } void run() { hRgssCore = ::LoadLibraryA("RGSS103J.dll"); pRGSSEval = (RGSSEval)::GetProcAddress(hRgssCore, "RGSSEval"); // 这里是执行的代码 pRGSSEval("p 'hello, rgss!'"); }
#include <windows.h>
using namespace std;
typedef int(*RGSSEval)(const char* pScripts);
static RGSSEval pRGSSEval = NULL;
static HMODULE hRgssCore = NULL;
extern "C" {
__declspec(dllexport) void run(void);
}
void run() {
hRgssCore = ::LoadLibraryA("RGSS103J.dll");
pRGSSEval = (RGSSEval)::GetProcAddress(hRgssCore, "RGSSEval");
// 这里是执行的代码
pRGSSEval("p 'hello, rgss!'");
}
g++ 编译通过,可以在脚本里这样调用
- # 假设保存成 hello.dll
- Hello = Win32API.new('hello.dll', 'run' , ['v'], 'v')
- Hello.call()
复制代码 |