草庐IT

DLL_EXPORTS

全部标签

windows - 检查 Windows API 级别的 DLL

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭4年前。Improvethisquestion有没有一种工具可以根据特定的API级别检查DLL?我们遇到了来自外部开发人员的DLL的问题,该DLL在Windows2000下无法运行,现在我们正在尝试查找Win2k中不存在的所有WindowsAPI调用。有这样的东西吗?

c++ - 如何在不同的目标平台上以编程方式巧妙地注册 32 位 COM/DLL 组件?

我曾使用以下函数在32位Windows平台(如WindowXP和Windows7)上注册我的32位COM/DLL组件。它工作正常。但是在64位Windows7上运行时,该函数无法注册成功。结果符合预期!intRegisterComponent(LPCTSTRlpszDllName){//LoadthelibraryHINSTANCEhLib=LoadLibrary(lpszDllName);if(hLib==NULL){return-2;}typedefHRESULT(CALLBACK*HCRET)(void);HCRETlpfnDllRegisterServer;//Findthee

c++ - 奇怪的 Unresolved external 编译 DLL

我正在尝试按照本网站上的说明进行操作:http://support.microsoft.com/kb/q168958代码如下:#include#includenamespaceTest{templateclassTestBuffer{private:TYPE*m_pData;size_tm_uSize;public:TestBuffer(size_tuSize):m_pData(NULL),m_uSize(0){m_pData=(TYPE*)malloc(uSize*sizeof(TYPE));}~TestBuffer(){if(NULL!=m_pData)free(m_pData);

c++ - 如何知道从哪个DLL加载的方法

在两个DLLA.dll和B.dll中定义了一个公共(public)方法foo()。现在,当进程proc.exe加载两个DLL并从两个线程同时调用foo()方法时。有什么方法可以知道foo()在运行时是从哪个DLLA.dll或B.dll加载的。我需要此信息用于记录目的。我在互联网上找不到任何相关内容。GetModuleFileName()将返回进程名称proc.exe而不是Dll名称。 最佳答案 假设您有函数的地址,您应该能够使用以下内容来确定模块的基址。HMODULEModuleFromAddress(void*address){M

c++ - 如何在 Windows 8 64 位操作系统中注册 .DLL 文件?

我到处搜索,但没有找到有关如何在Windows864位中注册.DLL文件的结果。看我的this我也尝试了所有方法,然后有人说我必须注册.DLL文件。但是如何呢? 最佳答案 只能注册COM服务器,glut32.dll不是COM服务器。一个标准错误是将32位DLL复制到c:\windows\system32。它们需要被复制到c:\windows\syswow64而不是64位版本的Windws上的32位可执行文件的位置。通常最好避免,弄乱Windows目录总是一个错误。将DLL复制到与EXE相同的文件夹中。最好通过项目中的构建后事件来完成

windows - PE 文件 (.exe .dll) 的哪些部分/部分包含它们的大部分行为?

我正在通过机器学习方法进行Windows恶意软件研究。我看了PE格式,用dumpbin解压PE文件,发现里面有很多部分。例如:.idata.edata.pdata.data.rdata.sxdata.text.rscr.tls...但并非所有这些都用于Action/行为。我只关心他们的行为并在下一步之前减少大数据。谢谢 最佳答案 由于您正在分析恶意软件,因此不应查看部分的名称。恶意软件开发人员更改节的名称并不困难,而且msvc编译器还允许您创建自定义节。您应该做的是查看各个部分的特征。通过读取IMAGE_SECTION_HEADER

c++ - 从 dll 函数调用中正确获取 Windows 版本?

假设我正在编写一个包含获取操作系统版本的函数的多用途dll:voidget_os_version(DWORD*major,DWORD*minor){OSVERSIONINFOEXosvi;ZeroMemory(&osvi,sizeof(OSVERSIONINFOEX));osvi.dwOsVersionInfoSize=sizeof(OSVERSIONINFOEX);//deprecatedbuteasiertouseforthisexample'ssakeGetVersionEx((OSVERSIONINFO*)&osvi);*major=osvi.dwMajorVersion;*m

c++ - 在全局变量的初始化/取消初始化中使用隐式加载的 DLL 中的函数

考虑一个使用导入库logging.lib的Windows程序,这样logging.dll将在运行时自动加载/卸载。另外,考虑主程序的翻译单元之一定义类类型的全局变量,如下所示:structInitGuard{InitGuard(){logging::initialize();}~InitGuard(){logging::deinitialize();}};InitGuardg_initGuard;除了更好的方法是在函数main中实例化InitGuard之外:是否保证logging.dll在调用InitGuard的c'tor时已经加载?更重要的是,是否保证logging.dll在Init

c++ - 包装第 3 方 DLL

我有一个需要使用LoadLibrary()动态加载并使用__cdecl调用约定的第3方DLL。我需要能够使用VB6中的dll,因此我创建了一个我自己的包装器DLL,它使用__stdcall调用约定并导出所需的函数。现在有一个额外的要求,我正在努力寻找如何管理;包装的DLL为另一个应用程序提供了一个API,我需要同时连接到该应用程序的两个实例。这是一个问题,因为DLL没有session的概念,典型的交互如下所示:tpc_connect("service1")//Dosomestufftpc_disconnect()我需要做的是session1=tpc_connect("service1"

c++ - DLL 中的非阻塞套接字(无窗口)

我有一个通过单个套接字连接到服务器的DLL。我面临以下问题:如果服务器的IP地址和端口为假或服务器已关闭,则使用此DLL的应用程序会卡住半分钟。我的想法是使用非阻塞套接字来避免该问题,方法是显示一个指示连接进度的窗口,并允许取消此过程。但是我没有窗口处理程序,怎么能使用WSAAsyncSelect函数呢? 最佳答案 如果你想使用WSAAsyncSelect类型的套接字,那么你的Dll将需要创建至少一个消息窗口来处理套接字事件。由于窗口将永远不可见,因此它的WindowProc将仅包含一个处理程序,用于您的自定义消息(WM_USER+