DLL中获取主程序句柄】的更多相关文章

一.问题由来及说明 在实际编程中遇到一些系统模块(或API)调用初始化需要窗口句柄,在主程序中(MFC或者win32)都可以很容易获得,比如mfc中可以直接调用AfxGetMainWnd().GetSafeHwnd()获取窗口句柄.但是如果跨DLL调用就很难拿到主程序的窗口句柄,那么如何获取呢? 二.可用的方法介绍 1. FindWindow/FindWindowEx函数 如果知道主调程序的进程名称,可以用FindWindow枚举并查找系统运行的所有窗口函数. 该函数之所以可以运行,是因为win…
当程序调用dll时,获取dll路径的方法: HMODULE hMod = GetModuleHandle(_T("axload.dll")); if (hMod != NULL) { TCHAR szBuffer[MAX_PATH] = { 0 }; GetModuleFileName(hMod, szBuffer, sizeof(szBuffer)/sizeof(TCHAR)-1); _DEBUG_OUT("path: %s\r\n", szBuffer); }…
AfxGetMainWnd AfxGetMainWnd获取自身窗体句柄 HWND hWnd = AfxGetMainWnd()->m_hWnd; GetTopWindow 函数功能:该函数检查与特定父窗体相联的子窗体z序(Z序:垂直屏幕的方向,即叠放次序),并返回在z序顶部的子窗体的句柄. 函数原型:HWND GetTopWindow(HWND hWnd): 參数: hWnd:被查序的父窗体的句柄.假设该參数为NULL,函数返回Z序顶部的窗体句柄. 返回值:     假设函数成功,返回值为在Z序…
研究delphi服务的路径,试了好几个方法 ,都没取出来,最后发现,要采用取DLL路径的方法 //一.获取Dll自身路径 //1)方法一: Function GetDllPath(sDllName:string):string; var ModuleFileName:array[0..255] of char; begin //{取得dll的实际位置} GetModuleFileName(GetModuleHandle(sDllName), @ModuleFileName[0], SizeOf(…
原文:从加载DLL的中获取放置于Resources文件夹中资源字典的几种方法 主程序 为 Main_Test.exe 被加载的DLL 为 Load_Test.dll  此DLL 中 有一个 文件夹Resources文件夹有一个资源字典Graphics.xaml 目的是为了加载Load_Test.dll 中的资源字典Graphics.xaml 方法一  用绝对路径 System.Windows.ResourceDictionary rDic = new System.Windows.Resourc…
原文:在 Target 中获取项目引用的所有依赖(dll/NuGet/Project)的路径 在项目编译成 dll 之前,如何分析项目的所有依赖呢?可以在在项目的 Target 中去收集项目的依赖. 本文将说明如何在 Target 中收集项目依赖的所有 dll 的文件路径. 本文内容 编写 Target 以上 Target 的输出 Reference 的输出 ReferencePath 的输出 解读原因 编写 Target <Target Name="WalterlvDemoTarget&…
原文:C#获取C# DLL中的指定接口的所有实现实例 - qq_19759475的博客 - CSDN博客 public static List<T> CreateTarInterface<T>(string dllpath) { List<T> rs = new List<T>(); var dlllll = Assembly.Load(dllpath); foreach (var item in dlllll.GetTypes()) { object ob…
有程序EXE和DLL,其中DLL中有1个函数用来显示对话框,被EXE调用.当EXE和DLL都为Release或Debug时,没有任何问题,但EXE为Release.DLL为Debug时,就会出错.该DLL是用VC提供的MFC Extension DLL,函数的代码如下:HINSTANCE hInstOld = AfxGetResourceHandle(); // 该句出错HINSTANCE hInstNew = GetModuleHandle("T01Test.dll");AfxSet…
命名空间:System.Runtime.InteropServices /// <summary> /// 该函数检索一指定窗口的客户区域或整个屏幕的显示设备上下文环境的句柄,以后可以在GDI函数中使用该句柄来在设备上下文环境中绘图.hWnd:设备上下文环境被检索的窗口的句柄 /// </summary> [DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern IntPtr G…
最近的一个项目中遇到了调用别人的sdk接口(dll库)而传给我的是一个vector指针,用完之后还要我来删除的情况.这个过程中首先就是在我的exe中将其vector指针转为相应指针再获取vector中相应的数据问题,始终都获得不了正确的数据,要么就是一些非法的数据:另一个问题就是delete这个指针时候会产生相应异常(针对这个问题的思考:如果EXE和DLL都链接到DLL的C/C++运行期库,那么代码将能够很好地运行.但是,如果两个模块中的一个或者两个链接到静态C/C++运行期库,那delete的…