【发布时间】:2012-08-03 07:18:04
【问题描述】:
我正在创建一个包含日志记录类的 Windows DLL 库,该类中的日志函数只是像这样调用 fprintf 来进行测试:
fprintf(stderr, "DEBUG: %s\n", "Hello");
现在,如果我从我的其他项目(使用库)的任何文件中的任何函数中使用它,这个调用就可以正常工作,但是如果我将它放在我的库中任何带有日志记录类的地方,它根本不会打印任何东西。
我可以看到它正确运行函数(使用简单的 exit(0); 进行测试)。
现在我对 c/c++ 中的整个库概念还是有点陌生,所以可能有些东西我只是不明白,否则我不知道为什么它不起作用。
我尝试在这里和谷歌上搜索,但我找不到其他有同样问题的人。
我使用 VC++ 2010
编辑:我想到了传递文件指针而不是仅使用库中的 stderr,这会导致抛出异常(文件的 _tmpfname 指针在抛出时为 NULL,我不确定是正确的)
【问题讨论】:
-
您的 DLL 和主应用程序是否都链接到同一个 C 运行时版本?
-
我在哪里可以找到这些信息?
-
查看依赖标签下“项目”的清单,我得到版本 9.0.21022.8 但是库的清单不会生成依赖标签或在其他地方显示 C 运行时版本:(
标签: c++