打开exe文件时qt5widgetsd.dll丢失怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打开exe文件时qt5widgetsd.dll丢失怎么办相关的知识,希望对你有一定的参考价值。
参考技术A 你好,丢失DLL文件的话可以使用腾讯电脑管家的电脑诊所进行修复,针对日常电脑问题进行修复和处理,覆盖问题范围广泛,快速搜索,智能匹配,一步一步轻松解决电脑问题,诊所新增搜索功能、web诊所,高效更便利;创新自助攻略、智能诊疗,全面更强力。 参考技术B rose病毒(rose.exe)是一种良性病毒,由2个文件载体构成,即 ROSE.EXE 及 AUTOEXEC.BAT,利用了双击存储设备自读autorun.inf 信息文本的漏洞,在系统中占用大量cpu资源,会引起部分操作系统崩溃,表现在开机自检后直接并反复重启,无法进入系统。 病毒特征:用鼠标点击磁盘盘符没有反应,只能通过右键菜单打开选项打开,且在右键菜单里新增了自动播放,发作时会导致系统无法启动。大部分通过U盘、移动硬盘等存储设备传播。 教你手动杀毒 1、调出任务管理器,在进程页面中结束掉所有名称为Rose.exe的进程(建议在后面的操作中反复此操作,以确保病毒文件不会反复发作)。2、在开始--运行中输入“regedit”(XP系统)打开注册表,查找所有的“rose.exe”键值项,找到后将整个shell子键删除。 3、在我的电脑-工具-文件夹选项-查看-显示所有文件和文件夹,把“隐藏受保护的系统文件”的勾去掉。 4、对每个盘符点右键-打开进入(切记不能双击),删掉所有的rose.exe和autorun.inf文件。 5、在c:windowssystem32下查找有没有rose.exe文件,如果存在就直接删掉。 友情提示:使用U盘或移动硬盘时进行杀毒后再使用。 安装杀毒软件和防火墙,并及时升级, 在进行修改注册表操作前最好先备份注册表。我希望它在单独打开 exe 文件时关闭
【中文标题】我希望它在单独打开 exe 文件时关闭【英文标题】:I want it to close when it opens the exe file separately 【发布时间】:2021-04-14 22:24:51 【问题描述】:我有两个用 C# 和 C++ 编码的 exe 文件。我想要做的是从 C# 下载并运行用 C++ 编码的 exe。当 C++ 应用程序不是从 C# 应用程序中获取时,我不希望它直接从下载的文件夹中启动。我该怎么做?
【问题讨论】:
你可以通过 md5/sha hash 来做到这一点。您的 c# 存储您将下载的文件的哈希值,并将其与您已下载的命运文件的哈希值进行比较。如果哈希匹配,则没有理由(根据您的逻辑)不执行 c++ exe 文件 【参考方案1】:C# 应用程序可以在启动 C++ 应用程序时传递命令行参数。如果 C++ 应用程序没有看到该参数,它可以立即终止自身而无需执行任何其他操作。
Process.Start(@"c:\path to\cpp.exe", "-startedByCSharpApp");
#include <string.h>
bool startedByCSharpApp(int argc, char* argv[])
for(int i = 1; i < argc; ++i)
if (strcmp(argv[i], "-startedByCSharpApp") == 0)
return true;
return false;
int main(int argc, char* argv[])
if (startedByCSharpApp(argc, argv))
// normal operations here ...
return 0;
另一种选择是让 C++ 应用程序调用 CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS)
和 Process32First()
/Process32Next()
来遍历正在运行的进程列表以查找自身和 C# 应用程序。见Taking a Snapshot and Viewing Processes。如果两者都没有找到,或者如果 C# 应用的进程 ID 与它自己的进程的 th32ParentProcessID
不匹配,它可以立即终止自身。
#include <tlhelp32.h>
#include <tchar.h>
#include <vector>
#include <algorithm>
bool startedByCSharpApp()
HANDLE hProcessSnap = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if (hProcessSnap == INVALID_HANDLE_VALUE)
return false;
PROCESSENTRY32 pe32;
pe32.dwSize = sizeof(pe32);
if (!Process32First(hProcessSnap, &pe32))
CloseHandle(hProcessSnap);
return false;
DWORD MyProcessId = GetCurrentProcessId();
DWORD MyParentProcessId = 0;
std::vector<DWORD> CSharpAppPIDs;
do
if (pe32.th32ProcessID == MyProcessId)
MyParentProcessId = pe32.th32ParentProcessID;
else if (_tcscmp(pe32.szExeFile, "csharp.exe") == 0)
CSharpAppPIDs.push_back(pe32.th32ProcessID);
while (Process32Next(hProcessSnap, &pe32));
CloseHandle(hProcessSnap);
if (MyParentProcessId != 0)
return (std::find(CSharpAppPIDs.begin(), CSharpAppPIDs.end(), MyParentProcessId) != CSharpAppPIDs.end());
return false;
int main()
if (startedByCSharpApp())
// normal operations here ...
return 0;
【讨论】:
很遗憾,我不知道您所说的内容。你有机会写一个示例代码吗? 您有什么不清楚的地方?您以前从未使用过命令行参数吗?或者之前调用过任何 Win32 API 函数? 是的,我从来没有打电话我不知道不幸的是我是新人:( 有示例视频吗?或者我可以在 googlede 上搜索什么 你好,现在我需要相反的我想用 c++ 启动 c# 应用程序我的 c# 应用程序不会运行,除非它在 c++ 应用程序中启动以上是关于打开exe文件时qt5widgetsd.dll丢失怎么办的主要内容,如果未能解决你的问题,请参考以下文章