首页 > 解决方案 > 在 C 应用程序中使用 RegSetValueEx 注册事件日志 dll,对于 CategoryMessageFile 之类的内容是否需要完整路径?

问题描述

我已经创建了一个事件记录 dll,我正在使用 RegSetValueEx(注册 CategoryMessageFile、EventMessageFile、ParameterMessageFile)在应用程序中注册它,但我不确定路径/文件名需要是什么......

例如,我知道我可以将整个路径插入到 syswow64 ,将文件放在 syswow64 中并且它可以工作,但是我构建了 32 位和 64 位版本的应用程序和 dll,我还需要为 64 位案例注册 system32 :


status = RegSetValueEx(key,
            "ParameterMessageFile",
            0,
            REG_EXPAND_SZ,
            "C:\\windows\\SysWOW64\\foo_event_log.dll",
            sizeof("C:\\windows\\SysWOW64\\foo_event_log.dll"));

status = RegSetValueEx(key,
            "ParameterMessageFile",
            0,
            REG_EXPAND_SZ,
            "C:\\windows\\system32\\foo_event_log.dll",
            sizeof("C:\\windows\\system32\\foo_event_log.dll"));

可以这样做,让搜索路径找到它吗?

status = RegSetValueEx(key,
            "ParameterMessageFile",
            0,
            REG_EXPAND_SZ,
            "foo_event_log.dll",
            sizeof("foo_event_log.dll"));

如果没有,最好的方法是有条件地编译吗?我看遍了,无法得到关于无路径版本是否可以接受的好答案?

标签: cwindowsdllregistration

解决方案


推荐阅读