《C++避坑神器·二十二》VS能正常运行程序,但运行exe程序无响应解决办法

简介: 《C++避坑神器·二十二》VS能正常运行程序,但运行exe程序无响应解决办法

原因是某个文件只是放在了项目路径下,没有放在exe路径下,比如Json文件原来只放在了mlx项目下,导致VS可以运行,但运行exe无响应或报错如下:

两种方式修改:

1、把Json文件拷贝一份放到exe路径下

2、利用生成事件,具体使用如下:

项目—属性—生成事件—命令行—加入xcopy “$(ProjectDir)periscopeconfig.json” $(OutDir) /Y 在VS运行程序后发现程序自动把Json拷贝到exe路径下了。

上面那个对应xcopy “D:\code5\mlx\mlx\periscopeconfig.json” D:\code5\mlx\x64\Debug\ /Y

D:\code5\mlx\mlx\被加到系统路径改名为ProjectDir,D:\code5\mlx\x64\Debug\被加到系统路径改名为OutDir

加到系统路径的目的:能够让别人电脑也能运行程序,找到对应的目录

把整个文件夹下的所有文件自动加载到exe路径下

xcopy "$(SolutionDir)extlib\mtf_LED" "$(OutDir)\mtf_LED" /E /I /Y

实际为:

xcopy"D:\songguju2\light-leakage-tester\extlib\mtf_LED”"D:\songguju2\light-leakage-tester\x64\Release\mtf_LED” /E /I /Y

把DLL目录下的所以DLL文件拷贝到OutDir目录下

xcopy "$(SolutionDir)extlib\MIL\x64\DLL" $(OutDir) /E /I /Y

拉了项目每次运行都需要手动在项目下放置别人的dll文件或者json文件等,怎么自动放置?还是利用生成事件。

项目–属性–生成事件:

分生成前事件和生成后事件:生成前事件是先执行下面路径内容在编译项目,生成后事件是先编译项目在执行下面路径,一般是放到生成后事件里

xcopy "$(SolutionDir)extlib\SMC6480\smc6x.dll" $(OutDir) /Y

对应为:

xcopy “D:\code3\mlx\extlib\SMC6480\smc6x.dll” D:\code3\mlx\x64\Debug\ /Y

作用是把smc6x.dll放到Debug目录下,这样不需要每次手动放置

生成事件报错:

xcopy “D:\new project\mlx\extlib\SMC6480\smc6x.dll” D:\new project\mlx\x64\Debug\ /Y

报错的原因是因为new project项目名称有空格,如果在引号里没事,但后面

D:\new project\mlx\x64\Debug\ /Y没有引号,所以new project报错

注意:如果exe和所需的dll不在同一个目录,想要成功运行exe程序,第一个方法就是通过生成事件把dll全部生成在exe同一目录下,第二个方法就是把所需的dll放在一个目录下,在环境变量path下面把这个目录加上,在运行exe时会在环境变量的path里遍历目录。

相关文章
|
1月前
|
机器学习/深度学习 人工智能 API
如何在c++侧编译运行一个aclnn(AOL)算子?
CANN的AOL库提供了一系列高性能算子API,优化了昇腾AI处理器的调用流程。通过两段式接口设计,开发者可以高效地调用算子库API,实现模型创新与应用,提升开发效率和模型性能。示例中展示了如何使用`aclnnAdd`算子,包括环境初始化、算子调用及结果处理等步骤。
|
5月前
|
C++
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
C++ 根据程序运行的时间和cpu频率来计算在另外的cpu上运行所花的时间
56 0
|
3月前
|
存储 程序员 编译器
简述 C、C++程序编译的内存分配情况
在C和C++程序编译过程中,内存被划分为几个区域进行分配:代码区存储常量和执行指令;全局/静态变量区存放全局变量及静态变量;栈区管理函数参数、局部变量等;堆区则用于动态分配内存,由程序员控制释放,共同支撑着程序运行时的数据存储与处理需求。
191 22
|
4月前
|
C++
【C++基础】程序流程结构详解
这篇文章详细介绍了C++中程序流程的三种基本结构:顺序结构、选择结构和循环结构,包括if语句、三目运算符、switch语句、while循环、do…while循环、for循环以及跳转语句break、continue和goto的使用和示例。
84 2
|
5月前
|
PHP C++ Python
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
右手坐标系,空间点绕轴旋转公式&程序(Python和C++程序)
119 0
|
5月前
|
C++
c++学习笔记03 程序流程结构
C++学习笔记,主要介绍了程序流程结构,包括顺序结构、选择结构和循环结构。选择结构中详细解释了if语句、三目运算符和switch语句的用法和注意事项。循环结构部分则涵盖了while循环、do-while循环和for循环的语法和使用技巧。此外,还介绍了跳转语句,包括break、continue和goto语句的用途和用法。
39 0
|
5月前
|
安全 C++ Windows
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
Windows下C++使用gRPC(Qt和VS,含文件包和使用方法)
|
1天前
|
设计模式 IDE 编译器
【C++面向对象——类的多态性与虚函数】编写教学游戏:认识动物(头歌实践教学平台习题)【合集】
本项目旨在通过C++编程实现一个教学游戏,帮助小朋友认识动物。程序设计了一个动物园场景,包含Dog、Bird和Frog三种动物。每个动物都有move和shout行为,用于展示其特征。游戏随机挑选10个动物,前5个供学习,后5个用于测试。使用虚函数和多态实现不同动物的行为,确保代码灵活扩展。此外,通过typeid获取对象类型,并利用strstr辅助判断类型。相关头文件如<string>、<cstdlib>等确保程序正常运行。最终,根据小朋友的回答计算得分,提供互动学习体验。 - **任务描述**:编写教学游戏,随机挑选10个动物进行展示与测试。 - **类设计**:基类
11 3
|
23小时前
|
编译器 数据安全/隐私保护 C++
【C++面向对象——继承与派生】派生类的应用(头歌实践教学平台习题)【合集】
本实验旨在学习类的继承关系、不同继承方式下的访问控制及利用虚基类解决二义性问题。主要内容包括: 1. **类的继承关系基础概念**:介绍继承的定义及声明派生类的语法。 2. **不同继承方式下对基类成员的访问控制**:详细说明`public`、`private`和`protected`继承方式对基类成员的访问权限影响。 3. **利用虚基类解决二义性问题**:解释多继承中可能出现的二义性及其解决方案——虚基类。 实验任务要求从`people`类派生出`student`、`teacher`、`graduate`和`TA`类,添加特定属性并测试这些类的功能。最终通过创建教师和助教实例,验证代码
18 5
|
23小时前
|
存储 算法 搜索推荐
【C++面向对象——群体类和群体数据的组织】实现含排序功能的数组类(头歌实践教学平台习题)【合集】
1. **相关排序和查找算法的原理**:介绍直接插入排序、直接选择排序、冒泡排序和顺序查找的基本原理及其实现代码。 2. **C++ 类与成员函数的定义**:讲解如何定义`Array`类,包括类的声明和实现,以及成员函数的定义与调用。 3. **数组作为类的成员变量的处理**:探讨内存管理和正确访问数组元素的方法,确保在类中正确使用动态分配的数组。 4. **函数参数传递与返回值处理**:解释排序和查找函数的参数传递方式及返回值处理,确保函数功能正确实现。 通过掌握这些知识,可以顺利地将排序和查找算法封装到`Array`类中,并进行测试验证。编程要求是在右侧编辑器补充代码以实现三种排序算法
16 5