基本 DLL 函数
Basic DLL Function
我是C和编程世界的新手! 尝试创建打印消息框的简单DLL文件 你好世界!
这是CPP
//main.cpp
#include "main.h"
// a sample exported function
void DLL_EXPORT SomeFunction(const LPCSTR sometext)
{
MessageBoxA(0, sometext, "DLL Message", MB_OK | MB_ICONINFORMATION);
}
extern "C" DLL_EXPORT BOOL APIENTRY DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
{
switch (fdwReason)
{
case DLL_PROCESS_ATTACH:
// attach to process
// return FALSE to fail DLL load
break;
case DLL_PROCESS_DETACH:
// detach from process
break;
case DLL_THREAD_ATTACH:
// attach to thread
break;
case DLL_THREAD_DETACH:
// detach from thread
break;
}
return TRUE; // succesful
}
在这里 h
//main.h
#ifndef __MAIN_H__
#define __MAIN_H__
#include <windows.h>
/* To use this exported function of dll, include this header
* in your project.
*/
#ifdef BUILD_DLL
#define DLL_EXPORT __declspec(dllexport)
#else
#define DLL_EXPORT __declspec(dllimport)
#endif
#ifdef __cplusplus
extern "C"
{
#endif
void DLL_EXPORT SomeFunction(const LPCSTR sometext);
#ifdef __cplusplus
}
#endif
#endif // __MAIN_H__
关键是,一旦我制作了一个加载 DLL 的控制台,我就必须从中调用该函数!我该怎么做才能简单地导出所有函数而不给它们一个名字,而只是从控制台中的 dll 加载所有内容?比如如果有人想使用我的 DLL 并且不知道该怎么称呼怎么办?或者,如果我有一个调用 DLL 的 exe 想要创建一个自定义 DLL 并调用我的函数?这不是为了黑客海豚! 对不起技能谢谢
">
如果有人想使用我的DLL并且不知道该怎么称呼怎么办">- 如果有人使用您的DLL,他需要知道该调用什么,没有简单的方法(因此您通常为*.h提供函数声明(。
实际上有一些方法可以枚举DLL提供的函数(例如,请参阅此处:Win32 API枚举dll导出函数?(,但是这不是大多数DLL库通常使用的方式。
请注意,您可以枚举函数名称,但没有标头,找出要传递给每个函数的参数以及函数返回的类型可能并不总是那么容易。通常可以使用C++导出的函数来完成(C++名称重整提供参数计数和类型信息(,但如果函数导出为普通"C"函数(其中名称是没有重整的简单函数名称(,则不那么容易。
相关文章:
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- Visual c ++,使用字符串引用/指针调用 dll 函数
- 来自 DLL 的函数调用 [表观调用的括号前面的表达式必须具有(指向-)函数类型]
- C++ DLL 引用C++.exe中的函数和类
- 如何使用导出的函数交叉编译 DLL
- 如何在窗口中使用注入的 dll 中的参数调用函数
- 在 Microsoft Access SQL 中调用自定义 DLL 函数时传递的内存地址无效
- 加载由 MATLAB Coder 生成的带有函数的 DLL,该函数调用外部函数
- PowerShell 使用结构类型参数调用 C++ DLL 的导出函数
- 从DLL导出函数,LoadLibrary()需要用TEXT转换的字符串才能编译而不会出错
- 从 C#-DLL 调用函数的 C++ 失败
- 如何在 DLL 内的成员函数中使用互斥/关键节
- 调用 "project" 函数和调用 DLL 函数之间的区别
- 函数指针分配在创建 DLL 后导致错误
- 从动态加载的 dll 内部调用C++函数
- 函数声明中的 WINAPI 标识符C++ DLL 入口点函数中的标识符
- LNK2019某些类函数,但不在其他类函数(DLL 中的模板类)上
- 从库导入函数./ DLL 文件
- 从 ntdll 调用 Nt 函数.dll在 Win32 环境中,C++
- 如何使用ctypes将python列表传递给C函数(dll)