C ++ CPP使用参数动态调用DLL

时间:2016-06-01 14:19:58

标签: c++ dll

我不是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?

1 个答案:

答案 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

举个例子。