问题标签 [crt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
991 浏览

c# - 在托管代码 C#/WPF 中调用 _CrtDumpMemoryLeaks()

我正在编写一个包装类来在 WPF 应用程序中调用 _CrtDumpMemoryLeaks()。我正在 WPF 应用程序中加载 C 语言 DLL,并想查看 DLL 中是否存在任何内存泄漏,因为 WPF 也充当 DLL 的测试应用程序。

我在 Windows XP Professional SP3 上使用 Visual Studio 2008 SP1。奇怪的是我不得不下载 msvcrtd.dll 文件,因为系统找不到它。之后,只需将其复制到调试文件夹中,应用程序就开始工作了。但是,即使我故意分配内存并且在 DLL 代码中没有释放内存,在调试过程中我也没有在输出窗口中看到内存泄漏信息。

此外,我无法更改 DLL 的源代码,否则我会尝试将这些函数放在 DLL 源代码中。我尝试创建 MFC 应用程序并调用 DLL 函数,即使我不调用 _CrtDumpMemoryLeaks(),MFC 应用程序也会检测到内存泄漏并显示在输出窗口中,因为我认为调试中的 MFC 可能在内部调用此函数,但它不适用于WPF 测试应用程序。

0 投票
5 回答
1035 浏览

c++ - 如何检查主函数是否被调用?

我想编写一些依赖于静态变量值的代码。所以我想添加一些检查以消除从其他静态变量构造函数调用此代码的可能性。并防止静态初始化命令一劳永逸。例如:

我该怎么做?如何检查我的函数是否在 main 函数之后被调用?

更新: Foo 对象的初始化代码非常繁重,它可能会很慢,甚至会引发异常

更新2:这样做没有生命问题。大多数情况下,bar 功能之前的注释都可以正常工作。我对某种调试检查感兴趣,以惩罚程序调试版本中粗心的程序员,而不是手动执行此操作。它可能是非标准方式,例如调用一些仅适用于 MSVC 的疯狂内置函数。

0 投票
1 回答
10032 浏览

c# - 从证书中提取公钥

有没有办法使用 C# 从证书中提取公钥?我有一个扩展名为 .crt 的证书文件。

0 投票
1 回答
457 浏览

c++-cli - 在带有 /MTd CRT 的本机 c++ exe 中使用带有 /MDd CRT 的 CLI C++ dll

我有一个使用 /MTd 运行时库的本机 c++ exe。我无法更改此选项,因为我对此 exe 的构建没有太多控制权。我需要在这个 exe 中调用一个 CLI C++ dll,它返回一个带有 STL 向量成员变量的类。在 CLI C++ 方法返回时,我得到一个堆损坏错误。根据我的分析,发生这种情况是因为有两个不同的 CRT,并且向量解除分配方法在本机 CRT 中运行,并且由于地址无效而导致炸弹。

如何从使用不同 CRT 编译的 CLI C++ dll 返回向量以与我的本机 exe 一起运行?

0 投票
4 回答
42013 浏览

java - 如何在openssl生成的java中使用.key和.crt文件?

我需要java中的非对称加密。我通过http://www.imacat.idv.tw/tech/sslcerts.html中所说的 openssl 生成带有自己密码的 .key 和 .crt 文件和 .crt 文件。
如何使用这些 .key 和 .crt 文件在 Java 中提取公钥和私钥?

0 投票
3 回答
31128 浏览

c++ - C++ 静态链接共享库

我有一个共享库,由我无法控制的另一个应用程序使用,它需要 *.so 对象。我的库使用了需要与其静态链接的 sqlite3(我绝对需要一个自包含的二进制文件)。

当我尝试编译和链接我的库时:

我最终得到以下错误:

使用 -fPIC 重新编译与什么有关?我的代码还是 CRT?

我已经尝试使用 -fPIC 编译我的对象,结果相同。

谢谢。

编辑:

该问题似乎与 SQLite3 无关。

我写了一个简单的单行无操作库,它编译和链接如下:

但不是这样:

该问题似乎与 CRT (crtbeginT.o) 有关。我应该重新编译 GCC --with-pic 还是什么?

0 投票
1 回答
163 浏览

c++ - 为什么具有 CRT 版本 30729.4148 的嵌入清单的程序在运行时在 winsxs 文件夹中以 30729.6161(latest) 运行?

我有一个问题真的很想知道。

我在我的机器上安装了各种版本的 Visual Studio 2008 再分发包。现在,30729.6161 是最新的。

在这种环境下,我制作了一个简单的程序,其中嵌入了仅引用 30729.4148 CRT 运行时库的清单。

但是,当我运行程序时,它加载的不是 30729.4148 版本的 CRT 库,而是 30729.6161。

为什么这行得通?

0 投票
3 回答
225 浏览

c - 用 crt 在线性时间内连接 C 字符串

假设我们想在 C 中将 const char *s[0], s[1], ... s[n-1] 连接成一个 long char out[]。

形式上(为简单起见,忽略缓冲区溢出):

当然,这是一项微不足道的任务:从指向 out 的指针开始并为每个 char 推进它,
同时循环输入字符串。

另一种方法(仍然是线性时间)是保持一个指向末尾的指针,
并且每个 s[i] 都这样做:

但是,如果有一个标准的 CRT 函数知道如何strcpy()
并返回复制的字符数(或等效地,指向复制后的下一个字符的指针),则代码会更清晰。

我能想到的唯一 CRT 函数就是sprintf(),但它显然不如返回计数
的简单函数那么有效。strcpy()

有没有我缺少的功能?

0 投票
2 回答
176 浏览

c++ - 如果最终用户需要链接到调试 CRT,那么分发 SDK 的最佳方式是什么?

我在一家相机公司工作,我们为客户提供 SDK。从历史上看,我们只提供了针对非调试 CRT 构建的 SDK 的发布版本。作为我们 SDK 包的一部分,我们提供了一些关于如何使用 SDK 的示例。这些示例具有使用调试 CRT 的调试项目配置。在某些情况下,由于这些示例和它们链接的库使用不同的 CRT,我们会遇到奇怪的行为。

我的问题是处理这种情况的适当方法是什么?我们是否应该分发使用调试 CRT 的库的调试版本?只要我们不提供 pdb 或最多提供剥离的 pdb,那么所有专有信息仍应保持隐藏。假设在这样做时除了更大的、未优化的二进制文件之外应该没有其他负面影响是否正确?

分发与调试 CRT 链接的调试二进制文件是常见的做法,还是我们应该继续仅分发发布版本?

0 投票
1 回答
1162 浏览

c++ - 从字符串中获取 LCID

如何从“en-US”之类的字符串中获取 LCID?

我知道 GetLocaleInfoEx 函数,但它不适用于 Windows XP。

我可以从 CRT 语言环境获取 LCID 吗?

UPD:我可以在LCID和 CRT 语言环境(由_create_locale函数创建)之间进行转换吗?CRT 语言环境可以由 _create_locale 和字符串 - 语言环境名称创建。