【发布时间】:2012-01-12 10:08:31
【问题描述】:
我必须在本机 C DLL 中创建一个简单的提示符。 我从来不用 C 语言创建窗口,所以我不知道存在哪些可能性。
窗口应该包含一个文本框和一个按钮。当用户按下按钮时,我应该能够获得该文本框的值。显示时,窗口不应中断程序流程,它应该是无模式的。我必须能够从 DLL 中的代码关闭窗口。
我一直在考虑使用 MFC,直到我意识到它是用于 C++ 的。所以我想我可以编写一个包装器,然后像那样使用它,但显然必须重构项目的某些部分才能正常工作(比如更改入口点)。我对如何使用任何“GUI-Frameworks”有点困惑,但如果有一个简单的解决方案那就太好了。
解决方案应该尽可能简单。
编辑:
DLL 的用途...
我们有一个使用 SCC 接口的应用程序套件(我将称之为 IDE)。我们有一个 SVN 存储库,因此我们使用 PushOk 将查询从 IDE 转换为 SVN 命令。 PushOk 和 IDE 对 SCC 接口的定义并不总是一致的,因此 IDE 会因某些操作而崩溃。由于我们不拥有 PushOk 的源代码,因此我们编写了自己的代理 dll 来解决我们遇到的特定问题。
现在,PushOk 在指定修订时没有获取文件的选项(它可以,但在我们的案例中不起作用)。所以我们必须自己实现它。前面提到的窗口是可以输入修订版的窗口,然后我们会得到带有该修订版的文件。
【问题讨论】:
-
DLL 可能永远不应该显示用户界面。为什么不创建一个标准应用程序呢?
-
在这种情况下,最好由 DLL 实现窗口。但是,我可以创建一个单独的应用程序,然后从 DLL 调用它,尽管我更喜欢不同的解决方案。
-
更多关于你的“情况”的信息会很有帮助。我无法想象 DLL 应该显示 UI 的这种情况。
-
您不应该使用 DLL 中的 GUI 框架,这会导致灾难。坚持使用普通的 win32 api(
CreateDialog()和朋友,一切都应该很好)。 -
@CodyGray:我注意到问题中的“情况”