草庐IT

DLL_FILE_NAME

全部标签

C++如何从DLL(windows)的文件名中获取进程ID?

如何从文件名中获取进程ID?比如:intprocessId=getProcessIdByFileName("Network.dll");顺便问一下,哪种数据类型具有进程ID?扩展信息:我有一个DLL的源代码。这个DLL被加载到应用程序中,就像其他一些DLL一样。我想Hook其他DLL的功能。因此我需要它们的进程ID(如果它们都在一个应用程序下运行,是否每个DLL都有一个进程ID?如何在我的DLL中调用其他DLL的函数?如何处理它们? 最佳答案 DLL没有进程ID。一个DLL可能被加载到多个进程中,或者根本没有。DLL可以加载到进程中

windows - 为什么我不能通过 codelite-ide 构建一个 dll?

在Windows上,通过codelite(编译器gcc),我编写了一个简单的程序并想将其构建到一个dll中。我建工程后,没有dll出来。然后我将程序移植到dev-c++,构建它,dll成功出来。为什么codelite不起作用?因为我选择了gcc? 最佳答案 如果其他人在使用CodeLite在Windows上创建/链接库时遇到问题,请确保输出文件名不包含.so扩展名。默认情况下,Windows上的CodeLite使用Unix共享对象(.so)扩展名,因此在项目选项中将其更改为动态链接库(.dll)。花了非常烦人的三个小时来玩弄配置,并

java - 是否可以在 C :/Windows/System32/location at runtime? 中放置一个 myfile.file

我想在中放置一个名为myFile.file的文件C:/Windows/System32/位置。这里是使用java代码放置我的文件。当我执行我的程序时,它抛出“AccessDenied:C:/Windows/System32/myFile.file”。为什么会这样?可以放在那个位置吗? 最佳答案 该(以及许多其他)系统位置仅限于管理员用户/提升的应用程序。应用数据应存储在用户配置文件(或公共(public)应用数据)中的用户应用数据文件中。如果你真的必须写入系统文件夹,那么你需要通过UAC请求用户许可,或者使用ShellExecute

windows - Windows 上的 GNU Emacs : unable to apply init file changes and to type tilde symbol

问题一我正在尝试使用init文件自定义我的Emacs。我找到了我的init文件的正确位置,并尝试在其中编写一些代码来改变Emacs的行为。按照文档示例,我写了下面这行代码(setqfill-column20)然后保存文件。但是当我启动Emacs时,fill-column变量仍默认设置为70。如果我即时修改该变量,Emacs会照常接受新值。我想知道我是否遗漏了有关init文件的内容。我应该明确告诉Emacs加载它吗?我是否应该包含其他代码语句以使其应用更改?问题2要在Emacs中引用你的HOME目录,你必须在路径的开头使用波浪号,例如当你想通过Emacs找到你的init文件位置时,就像这

c - 在没有宿主程序帮助的情况下,如何在同一个进程中协调不同的 DLL?

我正在寻找一种方法来协调同一进程中的DLL,以便在它们之间提供数据共享机制。目标是为所有DLL提供相同的共享代码,并让它们以这样一种方式进行协调,即由主程序加载的第一个将充当共享项的管理器,而其他人将使用此管理器。我无法修改主应用程序,因此不可能设置管理器并与其他DLL共享其内存地址。使用此机制的DLL集可能会有所不同,因此我不能明确假设其中一个将被加载。我考虑的一种解决方案是将内存地址添加到进程的环境变量中。第一个DLL会看到环境变量尚未设置,创建管理器对象并将变量设置为其地址。其他DLL会看到该变量并从中创建一个指向管理器对象的指针。这接近我想要的,但它似乎有点粗糙,因为不能保证环

c++ - 使用 dll 中的类时内存无效

这是我第一次尝试从dll导出类。我所做的是:-创建一个接口(interface)(只有纯虚方法)-使用不会导出的类在dll中实现此接口(interface)-该类有一个在其this指针上调用delete的释放方法-创建了一个带有静态方法的工厂类,该方法返回指向具体类的指针但作为接口(interface)。这个类是导出的。-返回对象的删除是通过调用其释放方法完成的。我从本教程中收集了所有这些aboutclassesindlls.问题是,当我在另一个项目中使用此dll时,一切正常,直到我对该对象调用释放函数。然后它会显示一个断言失败窗口,其中包含消息“_ASSERTE(_BLOCK_TYP

windows - 我如何知道我的 DLL 是如何加载的?

我的DLL如何检测它是隐式加载还是显式加载?示例MyTestDll.dlllibraryMyTestDll;usesSimpleShareMem,Windows,Dialogs;procedureDetectMethodDllLoad:bool;begin//?????//needtodetectloadingmethod-implicitorexplicitend;procedureMyTest;stdcall;beginifDetectMethodDllLoadthenShowMessage('WorkingProgram1(implicitdllload)')elseShowMe

windows - 无法让 xperfview 加载 DLL 的符号

我一直在用xperf竭尽全力为我正在分析的工具获取符号。我在该工具中运行的代码分为.exe和.dll——要分析的重要内容位于.dll中。我运行了xperf:xperf-onPROC_THREAD+LOADER+INTERRUPT+DPC+PROFILE-stackwalkprofile然后我运行了一下我的工具,然后xperf-dprofile.etl然后我尝试了xperfview。我加载了配置文件,打开“加载符号”,然后打开了汇总表。根本没有符号——从字面上看,模块在功能列中出现了“未知”。我已经在这方面搜索了其他线程,这是我尝试过的:我设置了我的环境变量,_NT_SYMBOL_PAT

php - IIS 网站 "failed to open stream: No such file or directory in C:\inetpub\vhosts\"但那里存在文件

您好,我一直在努力解决一个奇怪的问题。我正在使用IIS并将我的网站文件夹之一移动到我服务器的桌面,然后将其放回去,现在我明白了Warning:include_once(./lib/config.inc.php)[function.include-once]:failedtoopenstream:NosuchfileordirectoryinC:\inetpub\vhosts\politikacim.net\httpdocs\index.phponline12Warning:include_once()[function.include]:Failedopening'./lib/conf

c++ - 调用dll函数时参数对象的成员变量的内存地址发生变化

类SomeClass{//一些成员MemberClassone_of_the_mem_;我在dll中有一个函数foo(SomeClass*object),它是从exe调用的。问题one_of_the_mem_的地址在调度dll调用期间发生变化。详细信息:在调用之前(从exe):'&(this).one_of_the_mem_'-`0x00e913d0`之后-在dll本身中:'&(this).one_of_the_mem_'-`0x00e913dc`对象的地址保持不变。只有地址每次移动c的成员。我需要一些关于如何解决这个问题的建议。代码:Exe代码stat=module->init(th