动态库的创建 打开VS,创建如下控制台工程,工程命名为DllTest: 在弹出的对话框中选择"DLL"后单击"完成"按钮: 在工程中新建DllTest.h和DllTest.cpp文件,在DllTest.h头文件中加入以下代码: #ifndef _DLLTEST_H_ #define _DLLTEST_H_ extern "C" _declspec(dllexport) int Add ( int a, int b); extern "C…
背景描述: 今天要测试一份注入代码,拿以前写的创建窗口的DLL来做测试. 第一次注入时一切正常,窗口被成功创建并显示,但在第二次加载时窗口没有显示出来. 经过研究发现在第二次加载DLL时RegisterClass会调用失败,进而导致CreateWindow失败,自然就不会显示窗口了. 原因如下: MSDN中对RegisterClass的描述有这样两句话: All window classes that an application registers are unregistered when…
private List<IVisualControlsPlug> visualPlugs = new List<IVisualControlsPlug>(); public void Load() { DirectoryInfo di = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory); foreach (FileInfo fi in di.GetFiles("VisualControls.*.dll&q…