c# - 如何在c dll中使用assert

标签 c# c dll assert

我正在使用一个遗留的 C Dll(我有源代码),它有许多断言分散在程序中。 C# Windows 应用程序正在使用该 dll。

问题在于,当 DLL 中出现错误时,“断言失败”永远不会出现。 Dll 是一个控制台应用程序(不确定这是否相关)。有数十个断言,据我所知,没有简单的方法可以在不添加大量额外代码的情况下将错误消息(或标志)返回到 C# 应用程序。

有没有办法强制将断言输出到屏幕上?

最佳答案

检查 C 库中 assert() 宏的定义。它通常具有“可插拔”输出机制。最坏的情况你必须自己重写 assert()

这里的根本问题是控制台程序有2个输出流:正常和错误。 System.Diagnostics.Process 类有一个 StandardError 属性,可用于拦截写入 stderror 流的消息。

关于c# - 如何在c dll中使用assert,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12130804/

相关文章:

c# - 如何删除字符串的一部分?

c - 信号 - SIGUSR1 类练习

c - 访问冲突读取位置 0xfdfdfdfd。 IN C

c++ - 使用Wix Msi安装程序在安装后将CPP dll注册到COM中

c# - 根据 C# 中的实例化类,利用不同的依赖项

c# - 如何从对话框中检索数据?

c# - 将自定义实体映射到数据库列

c# - 如何使 Asp.Net Core Identity 与 OpenIdConnect 一起工作

c - GCC - 使用 POSIX 信号时优化无效

assembly - 在不使用相关性的情况下直接在 ASM 中调用/跳转(x86)