我不是C ++ - 专业。我正在做硕士论文,主要是编程。最后会有4个DLL和一个exe 我搜索了一些东西,如何编译dll和东西,并已经从“模板”中创建了一个dll。现在,问题是:如何使用参数从cpp动态调用dll?
这是我的代码(主要来自here):
#include <cstdlib>
#include <sstream>
#include <string>
#include <iostream>
#include <stdio.h>
#include <windows.h>
#include <stdexcept>
typedef VOID (*DLLPROC) (LPTSTR);
HINSTANCE hinstDLL;
DLLPROC HelloWorld;
BOOL fFreeDLL;
hinstDLL = LoadLibrary("Test-DLL.dll");
if (hinstDLL != NULL)
{
HelloWorld = (DLLPROC) GetProcAddress(hinstDLL, "hello");
if (HelloWorld != NULL)
(HelloWorld);
fFreeDLL = FreeLibrary(hinstDLL);
}
要调用的函数是hello(const char *s)
。如何将*s
传递给dll?
答案 0 :(得分:0)
typedef VOID(* DLLPROC)(LPTSTR);是你期望的功能的签名 - 这应该是你的情况
typedef VOID(* DLLPROC)(const char *);
第一项是函数的返回类型 - 第一个括号的内容是你想要的内容;并且第二个括号的内容是参数。
HelloWorld是你进入dll的函数指针 - 语法上,调用函数与调用静态编译的库函数相同;因此你只需要做
的HelloWorld(&#34; Dave和#34) 用参数&#34; dave&#34;来调用你的函数。
您可能希望快速浏览一下 https://msdn.microsoft.com/en-us/library/64tkc9y5.aspx
举个例子。