发个小巧的 MSVC编译器 MSVC_2010_SP1_x86.7z 解决 WIn7 Dll 退出错误报告问题
MSVC_2010_SP1_x86.7z 占用空间 26.6 MB (27,975,680 字节)
下载地址 https://wwcz.lanzout.com/iTX6k1435fba
建立一个目录 C:\CodeBlocks\MSVC 指定一下 NTFS 文件压缩 包含子目录
大小 311 MB (326,424,277 字节)
占用空间 141 MB (148,896,749 字节)
VS Code 配置 CodeRunner 编译 C++ 文件动画演示
- 安装插件 CodeRunner 先 点击右下角 c++文字,上面下拉菜单选择 C++ 语言基础设置
"cpp": "cd $dir && cl.exe /nologo /w /EHsc /Ox /DNDEBUG /MD $fileName /link rpcrt4.lib msvcrt.lib msvcprt.lib Gdi32.lib user32.lib Kernel32.lib && $dir$fileNameWithoutExt",
- 按图示填入下面测试代码中注释的哪行,修改到 josn 配置文件中
#include <windows.h>
#include <stdio.h>
#pragma rpcrt4.lib
int main()
{
UUID uuid;
UuidCreate(&uuid);
char *uuid_str;
UuidToStringA(&uuid, (RPC_CSTR*)&uuid_str); // 为 UUID 字符串分配动态内存
printf("UUID: %s\n", uuid_str);
RpcStringFreeA((RPC_CSTR*)&uuid_str); // 释放 UUID 字符串动态内存
return 0;
}
// "cpp": "cd $dir && cl.exe /nologo /w /EHsc /Ox /DNDEBUG /MD $fileName /link rpcrt4.lib msvcrt.lib msvcprt.lib Gdi32.lib user32.lib Kernel32.lib && $dir$fileNameWithoutExt",
一般学习 C/C++ 基础语法不学GUI,使用这个 编译器一般够用了。而且编译的命令行工具,兼容性好,很少提示缺少其他dll库
INCLUDE=C:\CodeBlocks\MSVC\include
LIB=C:\CodeBlocks\MSVC\lib
PATH 增加 C:\CodeBlocks\MSVC\bin
一般配合 CodeBlocks 使用,如果想给 VSCode 或者 命令行使用,需要手工添加环境变量
如上图,添加 INCLUDE LIB 和 PATH
cl.exe /nologo a.c ; .\a.exe
使用这个命令行 编译和运行 c 源码和程序
自己使用 C++ 写了 DLL 给 VBA 程序调用。 在一台工作电脑上 使用还算正常,但是关闭程序的时候会跳错误报告。
编译的 DLL 使用 TDM-GCC 编译的,可能对 win7 支持不太好,在其他 WIN 10 win11 不会跳错误。在 win7 的 CorelDRAW 2020下又不会跳报告。
折腾了很长时间未果。
后来 使用这个 MSVC 2010 编译器 编译 32 位的 dll , 使用后就 不会跳错误报告了。
64位dll 还没找到合适的编译器 ,网上找到一个修改注册表,让他错误报告不提示了。
修改 DontShowUI 的值,改成 0
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Windows Error Reporting]
"DontShowUI"=dword:00000001
0 条评论