GetProcAddress取消闪烁以获取哪种形式的Void pascal Myfunction(BOOL)的地址
GetProcAddress unble to get adress which of the form Void pascal Myfunction(BOOL)
我有MyDll.dll,我想访问它的函数Myfunction,它的形式是:
空虚性痉挛Myfunction(BOOL);
这是我的代码:
#include "stdafx.h"
#include "iostream"
#include "windows.h"
using namespace std;
void calldll();
extern "C" __declspec(dllexport) void Myfunction(BOOL);
void calldll()
{
HINSTANCE hDll;
DWORD dwErrorCode=0;
LoadMe=LoadLibrary(_T("MyDll.dll"));
if(hDll!=NULL)
{
cout<<"n DLL loaded successfully n";
}
else
cout<<"n Unable to load DLL n";
Myfunction sp1=(Myfunction)GetProcAddress(hDll,"Myfunction");
if(sp1!=NULL)
{
cout<<"n Process loaded successfully n";
}
else
{
cout<<"n Unable to load Process n";
}
FreeLibrary(hDll);
}
它给出的错误为:
1.语法错误:缺少";"在标识符"sp1"之前
2."p1":未声明的标识符
3.语法错误:缺少";"在标识符"GetProcAddress"之前
我不明白。在这方面能帮我什么吗。
您需要声明一个变量,该变量是返回void
并接受BOOL
参数的函数的指针:
typedef void (pascal *MYFUNCTION_PTR)(BOOL);
MYFUNCTION_PTR fp = (MYFUNCTION_PTR)GetProcAddress(hDll,"Myfunction");
例如:
#include <stdafx.h>
#include <iostream>
#include <windows.h>
void calldll();
void calldll()
{
typedef void (pascal *MYFUNCTION_PTR)(BOOL);
HINSTANCE hDll;
hDll = LoadLibrary(_T("MyDll.dll"));
if(hDll!=NULL)
{
cout<<"n DLL loaded successfully n";
MYFUNCTION_PTR sp1=(MYFUNCTION_PTR)GetProcAddress(hDll,"Myfunction");
if(sp1!=NULL)
{
cout<<"n Process loaded successfully n";
}
else
{
cout<<"n Unable to locate function: " << GetLastError() << n";
}
FreeLibrary(hDll);
}
else
{
cout<<"n Unable to load DLL n";
}
}
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 在c++类上调用void函数
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- 在派生函数中指定void*参数
- C++为什么尽管我调用了void函数,它却不起作用
- 如何从void函数输出字符串
- 我应该使用什么来代替void作为变体中的替代类型之一
- 奇怪的结构&GCC&clang(void*返回类型)
- Arduino:for/while/if在void setup()或void loop()之前?——错误:之前需要不合格
- 为什么这个函数将"const char*"转换为"void* const"而不是"const void*"
- 引用一个已擦除类型(void*)的指针
- 将尾部调用void(i32,..)位转换为llvm::函数以获取FnAttribute
- 库函数需要一个 std::function<void(void)>,如何传入类函数?
- 如何将指针从一个void函数传递到另一个C++
- 为什么我在使用void函数时得到错误代码C2276
- void*到驱动程序中的UnicodeString
- 为什么在逗号分隔符上下文中将预增量的结果强制转换为void
- 指针没有更新它在void函数内部指向的值
- 不能将 "void *" 类型的值分配给类型 "TCHAR" 的实体
- GetProcAddress取消闪烁以获取哪种形式的Void pascal Myfunction(BOOL)的地址