如何将指针传递给C中的函数

use*_*415 1 c

我想要做的是将DLLname放在DLLnameHERE.dll所在的位置.

这是我的一段代码:

int ToLoadLibrary(char * DLLname) 
{

HINSTANCE hinstLib;
MYPROC ProcAdd;
BOOL fFreeResult, fRunTimeLinkSuccess = FALSE;

// Get a handle to our DLL module created in the previous example. Make sure you already copied the mydllpro.lib and mydllpro.dll to the appropriate folders...
hinstLib = LoadLibrary(L"DLLnameHERE.dll");
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Win*_*ute 5

您遇到的问题是Microsoft特定的问题.宏LoadLibrary根据预处理器宏扩展到接受a char const*或a 的函数的名称wchar_t const *.在你的情况下,电话

hinstLib = LoadLibrary(L"DLLnameHERE.dll");
Run Code Online (Sandbox Code Playgroud)

表明后者就是这种情况.

解决这个问题的最简单方法是使用char const *直接接受的函数的名称; 它是LoadLibraryA:

hinstLib = LoadLibraryA(DLLname);
Run Code Online (Sandbox Code Playgroud)

该机构被更详细地描述在这里在MSDN.