首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

GetLastError错误代码

〖0〗-操作成功完成。   〖1〗-功能错误。   〖2〗-系统找不到指定的文件。   〖3〗-系统找不到指定的路径。   〖4〗-系统无法打开文件。   〖5〗-拒绝访问。   〖6〗-句柄无效。   〖7〗-存储控制块被损坏。   〖8〗-存储空间不足,无法处理此命令。   〖9〗-存储控制块地址无效。   〖10〗-环境错误。   〖11〗-试图加载格式错误的程序。   〖12〗-访问码无效。   〖13〗-数据无效。   〖14〗-存储器不足,无法完成此操作。   〖15〗-系统找不到指定的驱动器。   〖16〗-无法删除目录。   〖17〗-系统无法将文件移到不同的驱动器。   〖18〗-没有更多文件。   〖19〗-介质受写入保护。   〖20〗-系统找不到指定的设备。   〖21〗-设备未就绪。   〖22〗-设备不识别此命令。   〖23〗-数据错误 (循环冗余检查)。   〖24〗-程序发出命令,但命令长度不正确。   〖25〗-驱动器无法找出磁盘上特定区域或磁道的位置。   〖26〗-无法访问指定的磁盘或软盘。   〖27〗-驱动器找不到请求的扇区。   〖28〗-打印机缺纸。   〖29〗-系统无法写入指定的设备。   〖30〗-系统无法从指定的设备上读取。   〖31〗-连到系统上的设备没有发挥作用。   〖32〗-进程无法访问文件,因为另一个程序正在使用此文件。   〖33〗-进程无法访问文件,因为另一个程序已锁定文件的一部分。   〖36〗-用来共享的打开文件过多。   〖38〗-到达文件结尾。   〖39〗-磁盘已满。   〖50〗-不支持该请求。   〖51〗-远程计算机不可用 。   〖52〗-在网络上已有重复的名称。   〖53〗-找不到网络路径。   〖54〗-网络忙。   〖55〗-指定的网络资源或设备不再可用。   〖56〗-已到达网络 BIOS 命令限制。   〖57〗-网络适配器硬件出错。   〖58〗-指定的服务器无法运行请求的操作。   〖59〗-发生意外的网络错误。   〖60〗-远程适配器不兼容。   〖61〗-打印机队列已满。   〖62〗-无法在服务器上获得用于保存待打印文件的空间。   〖63〗-删除等候打印的文件。   〖64〗-指定的网络名不再可用。   〖65〗-拒绝网络访问。   〖66〗-网络资源类型错误。   〖67〗-找不到网络名。   〖68〗-超过本地计算机网卡的名称限制。   〖69〗-超出网络 BIOS 会话限制。   〖70〗-远程服务器已暂停,或正在启动过程中。   〖71〗-当前已无法再同此远程计算机连接,因为已达到计算机的连接数目极限。   〖72〗-已暂停指定的打印机或磁盘设备。   〖80〗-文件存在。   〖82〗-无法创建目录或文件。   〖83〗-INT 24 失败。   〖84〗-无法取得处理此请求的存储空间。   〖85〗-本地设备名已在使用中。   〖86〗-指定的网络密码错误。   〖87〗-参数错误。   〖88〗-网络上发生写入错误。   〖89〗-系统无法在此时启动另一个进程。   〖100〗-无法创建另一个系统信号灯。   〖101〗-另一个进程拥有独占的信号灯。   〖102〗-已设置信号灯且无法关闭。   〖103〗-无法再设置信号灯。   〖104〗-无法在中断时请求独占的信号灯。   〖105〗-此信号灯的前一个所有权已结束。   〖107〗-程序停止,因为替代的软盘未插入。   〖108〗-磁盘在使用中,或被另一个进程锁定。   〖109〗-管道已结束。   〖110〗-系统无法打开指定的设备或文件。   〖111〗-文件名太长。   〖112〗-磁盘空间不足。   〖113〗-无法再获得内部文件的标识。   〖114〗-目标内部文件的标识不正确。   〖117〗-应用程序制作的 IOCTL 调用错误。   〖118〗-验证写入的切换参数值错误。   〖119〗-系统不支持请求的命令。   〖120〗-此功能只被此系统支持。   〖121〗-信号灯超时时间已到。   〖122〗-传递到系统调用的数据区太小。   〖123〗-文件名、目录名或卷标语法不正确。   〖124〗-系统调用级别错误。   〖125〗-磁盘没有卷标。   〖126〗-找不到指定的模块。   〖127〗-找不到指定的程序。   〖128〗-没有等候的子进程。   〖130〗-试图使用操作(而非原始磁盘 I/O)的已打开磁盘分区的文件句柄。   〖131〗-试图移动文件指针到文件开头之前。   〖132〗-无法在指定的设备或文件上设置文件

01

OpenCV 图像拼接 优化

前面一篇文件 https://blog.csdn.net/zhanggqianglovec/article/details/103344658 讲述了如果将多个影像拼接为一个大的影像,本文将讲述 一些上面工具在使用过程中的问题及其优化 1. 问题出现: 首先直接说一下工具上的缺陷: 1.1 该工具依赖的是 x86库,包括opencv 2.4.3 ,cholmod 1.6.0 都是32位的,32和64都会影响工具在处理影像时的性能,比如在处理索尼相机的照片时,分辨率是 6000*4000,20多张照片,在处理到一半时会爆出 申请内存失败的情况。(本地环境为 i5处理器四核,16G内存),处理索尼相机时每张照片都会申请 6000*4000 字节内存块,直接内存爆出内存申请失败。 1.2 该工具迁移到其他机子上会出现不兼容的问题,应为opencv 底层设计到 GPU,CPU等指令,所以在其他机子上 运行,稍微大一点的图片 都会爆出 内存申请失败的问题。 2. 问题定位: 接下来说一下问题的定位 刚开始一直以为是内存的问题,因为在处理小一点的图片时,是没有问题的。在处理所以相机时才会出现;但是当迁移到其他机子上的时候,当地环境是 200G的内存,任然会报出 内存问题,这个就不是内存问题了。然后网上查询,大部分的解决思路 都是 32与64的不兼容。知其然不知其所以然,最后通过仔细的查看爆出来的原因,才豁然大悟,opencv底层调用到了cpu、gpu的指令,然后opencv对底层32/64的支持并不是很好,也就是说 在64环境下调用32 的指令,会出现不兼容的问题,从而导致频繁的爆出内存问题,到此为止,已经定位的差不多了,爆出内存问题只是表象,底层是msvcp.dll/msvcr.dll的执行。 3. 解决之道: 既然问题已经定位到,那么解决之道又是什么,毫无疑问:从底层实现对64的支持,不依赖32位的相关东西。说白了就一句话:重新编译mosaic的所有依赖库,全部换为 64版本 应该就能解决问题。 4. OpenCV 2.4.9 64位的编译 4.1 OpenCV下载: Opencv库的编译相对来说简单,通过Cmake直接可编译,问题是Opencv的源码获取比较麻烦,通过github获取,在git下载过程中时常会出现git下载失败,原因是github连接到了外网,会有网路断开等情况,所以通过github上查找 opencv来下载 还是比较麻烦的,需要多试几次。好在opencv2.4.9 有可执行程序,直接安装 opencv2.4.9 即可安装 他的源码,这个比较好,一下子全部搞定。 4.2 OpenCV工程生成: 在选择 Visual Studio 编译版本的时候需要注意下,Opencv 有区分 X86,X64 和 IA及RAM的编译,这个需要根据自己的情况进行选择,64位环境下一定选择 X64,因为我用的时候 Visual Studio 2010,所以我选择的是 Visual Studio 2010 X64版本,然后点集 Configure,Generate,OpenProject 即可在 Visual Studio 2010中 打开 Opencv 的工程。 4.3 OpenCV 工程编译: OpenCV 工程打开后,找到 ALL_BUILD工程,选择Debug/Release版本,右键build,这个工程只会生成对应的lib库和dll库,并不会生成头文件。 INSTALL工程,该工程首先会执行ALL_BUILD工程,然后复制相关库(lib/dll)到install下的 lib目录和bin目录,复制指定头文件到 include目录,这个工程满足要求,右键 build ,工程执行完毕后会在install目录下生成include目录,bin目录和lib目录。 4.4 Opencv编译完成 5. Cholmod 3.1.0 64位的编译 5.1 Cholmod的获取 网上关于Cholmod的讲解很少,在网上找了很久,找到了SuiteSparse这个产品,SuiteSparse是一个产品套件,里面包含了很多图像相关的处理库,Cholmod只是其中的一部分,而且SuiteSparse目前代码都是针对Linux下的开发,没有针对Windows做 相关的操作,源码目录下不存在cmaketext.txt 文件,不能在windows下直接编译。难道要全部

01

global.json 概述

该global.json文件允许您定义.NET SDK版本,当您运行.NET CLI命令时使用。选择 .NET SDK 与指定项目目标运行时无关。.NET SDK 版本指示使用的 .NET CLI 版本。 一般情况下,您希望使用最新版本的 SDK 工具,因此不需要global.json文件。在一些高级场景中,您可能希望控制 SDK 工具的版本,本文将解释如何做到这一点。 有关改为指定运行时的更多信息,请参阅目标框架。 .NET SDK在当前工作目录(不一定与项目目录相同)或其父目录之一中查找global.json文件。 global.json 模式 软件开发工具包 类型: object 指定有关要选择的 .NET SDK 的信息。 版本 类型: string 要使用的 .NET SDK 的版本。 这个领域: 不支持通配符;也就是说,您必须指定完整的版本号。 不支持版本范围。 允许预发行 类型: boolean 从以下版本可用:.NET Core 3.0 SDK。 指示 SDK 解析器在选择要使用的 SDK 版本时是否应考虑预发布版本。 如果未明确设置此值,则默认值取决于您是否从 Visual Studio 运行: 如果您不在Visual Studio 中,则默认值为true. 如果您在 Visual Studio 中,它会使用请求的预发布状态。也就是说,如果您使用的是 Visual Studio 的预览版,或者您设置了使用 .NET SDK 的预览选项(在工具>选项>环境>预览功能下),则默认值为true。否则,默认值为false。 前滚 类型: string 从以下版本可用:.NET Core 3.0 SDK。 选择 SDK 版本时使用的前滚策略,作为缺少特定 SDK 版本时的回退或作为使用更高版本的指令。一个版本必须与指定rollForward值,除非你将其设置为latestMajor。默认前滚行为由匹配规则决定。 要了解可用的策略及其行为,请考虑以下格式的 SDK 版本定义x.y.znn: x 是主要版本。 y 是次要版本。 z 是特征带。 nn 是补丁版本。 下表显示了rollForward键的可能值: 表格1 价值 行为 patch 使用指定的版本。 如果未找到,则前滚到最新的补丁级别。 如果找不到,则失败。 此值是早期版本的 SDK 的旧行为。 feature 对指定的主要、次要和功能带使用最新的补丁级别。 如果未找到,则前滚到同一大调/小调中的下一个更高的功能带,并使用该功能带的最新补丁级别。 如果找不到,则失败。 minor 对指定的主要、次要和功能带使用最新的补丁级别。 如果未找到,则前滚到同一主要/次要版本中的下一个更高的功能带,并使用该功能带的最新补丁级别。 如果未找到,则前滚到同一大调内的下一个更高的小调和功能带,并使用该功能带的最新补丁级别。 如果找不到,则失败。 major 对指定的主要、次要和功能带使用最新的补丁级别。 如果未找到,则前滚到同一主要/次要版本中的下一个更高的功能带,并使用该功能带的最新补丁级别。 如果未找到,则前滚到同一大调内的下一个更高的小调和功能带,并使用该功能带的最新补丁级别。 如果未找到,则前滚到下一个更高的主要、次要和功能带,并使用该功能带的最新补丁级别。 如果找不到,则失败。 latestPatch 使用最新安装的补丁级别,该补丁级别与请求的主要、次要和功能带与补丁级别相匹配,并且大于或等于指定的值。 如果找不到,则失败。 latestFeature 使用与请求的主要和次要功能区和补丁程序级别大于或等于指定值相匹配的最高已安装功能区和补丁程序级别。 如果找不到,则失败。 latestMinor 使用与请求的主版本相匹配的最高安装次版本、功能区域和补丁级别,并且次版本、功能区域和补丁级别大于或等于指定的值。 如果找不到,则失败。 latestMajor 使用版本高于或等于指定值的最高安装 .NET SDK。 如果找不到,则失败。 disable 不向前滚动。需要完全匹配。 msbuild-sdks 类型: object 让您可以在一个地方而不是在每个单独的项目中控制项目 SDK 版本。有关更多信息,请参阅如何解决项目 SDK。 例子 以下示例显示了如何不使用预发布版本: JSON 复制 { "sdk": { "allowPrerelease": false } } 以下示例显示如何使用安装的高于或等于指定版本的最高版本。显示的 JSON 不允许早于 2.2.200 的任何 SDK 版本,并允许 2.2.200 或任何更高版本,包括 3.0.xxx 和 3.1.xxx。 JSON 复制 { "sdk": { "version": "2.2.200", "rollForward": "lates

01
领券