我正在使用一个遗留的 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/