在mfc应用程序中使用win32 dll是否安全
Is it safe to use a win32 dll in an mfc application?
我有一个win32 DLL,它包含Windows.h
并使用windows API。我想把这个DLL加载到一个使用MFC的应用程序中。
这会导致内存泄漏或出现异常行为吗?还是安全?
MFC是在Windows API之上实现的。MFC应用程序可以在没有任何限制的情况下调用Windows API。然而,在包括afxwin.h
之前不可能(也不要求)#include <windows.h>
。如果您这样做,afxv_w32.h
将出错并显示以下消息:
WINDOWS.H已经包含在内。MFC应用程序不得为
#include <windows.h>
这背后的原因不是兼容性问题。这是由于MFC必须设置几个预处理器符号来控制编译过程的某些方面。这些符号必须在包括windows.h
(afxv_w32.h
最终包括)之前定义。
同样,对于使用Windows API实现的.dll链接也不存在任何问题。事实上,默认的MFC应用程序已经链接到许多Windows API库,如kernel32.dll
和user32.dll
。如果声明.dll导出的头文件包含windows.h
,则需要确保它包含在afxwin.h
之后。否则,预处理器将错误地显示上面引用的消息。
相关文章:
- 在通用 Windows 应用程序C++上使用 win32 DLL 库
- 如何打印调试C++ Win32 DLL?
- 我可以在 Win32 DLL 中使用 LoadLibrary 吗?
- 如何使用Cmake为SimuroSot模拟器构建(从DevCpp转换)Win32 DLL
- 如何将窗口句柄从C#传递到C Win32 DLL
- 视力的NET C#调用C++本机Win32 DLL时出现问题
- 喜欢 VS2013 的 Win32 dll 上的库的麻烦
- 旧版 Win32 DLL 中的空终止字符串 C++ - 有没有更好的方法
- 在mfc应用程序中使用win32 dll是否安全
- c++win32 DLL-需要动态加载base64字符串(非常奇怪!)
- win32 DLL中的C++-LoadString()不起作用
- Calling Win32 DLL from C++
- 来自非托管 win32 dll 的 C# 运行对话框
- 如何加载加载win32 dll和执行简单的winapi与firebreath
- 实现CLR到旧的MFC/Win32 DLL和托管DLL到MFC/Win32应用程序
- 从win32 dll调用.net内置类
- Win32 DLL窗口未显示
- Win32 DLL导出函数参数最佳实践
- 从c#程序到c++ win32 DLL共享结构体的最佳实践
- 一旦我从Win32 DLL中获得HWND,我可以获得本机窗口的坐标(即使窗口移动)