WEB开发网
开发学院软件开发VC 如何从 MFC 应用程序中调用 .NET 框架 阅读

如何从 MFC 应用程序中调用 .NET 框架

 2006-07-20 11:41:42 来源:WEB开发网   
核心提示: 一个最后的警告:发送击键是一种名声狼藉的控制其它应用程序的古怪方法,你必须完全正确地获得所有键,如何从 MFC 应用程序中调用 .NET 框架(4),一旦上下文或用户界面稍有改变,便可能导致问题,但是当你添加 /clr ,那么 IDE 不会自动移除 /REC1,如果你想要控制其它应用程序,

一个最后的警告:发送击键是一种名声狼藉的控制其它应用程序的古怪方法。你必须完全正确地获得所有键,一旦上下文或用户界面稍有改变,便可能导致问题。如果你想要控制其它应用程序,可以看看脚本系统、编程接口或宏语言。

我读了一些关于禁用系统键序列的文章,如:Ctrl+Alt+Del,包括你在 2002 年 MSDN 杂志九月刊上的专栏文章。但是我如何通过编程来发送 Ctrl+Alt+Del 呢?

William Burns

本文的第一个问题回答了如何发送击键到任何应用程序,但是你无法用 SendInput 发送 Ctrl+Alt+Del,因为这个键序列是在操作系统底层处理的。不管怎样,用合成击键的方法来“发送”Ctrl+Alt+Del 是不合适的。那用什么方法呢?如果你想启动任务管理器,用“taskmgr.exe”作为参数调用 ShellExecute。如果你想重启机器,可以用 EWX_REBOOT 标志调用 ExitWindowsEx。ExitWindowsEx 具备所有以不同方式关闭或重启机器的标志(参见 Figure 4)。此外,你的应用程序必须具备 SE_SHUTDOWN_NAME 特权才能重启机器。

有人知道 Ctrl+Alt+Del 的由来吗?如果你认为你知道,给我发个 e-mail 过来。我会在以后的专栏里公布答案?

我能从 MFC 应用程序中调用 .NET 框架吗?我想从我的非托管 MFC 代码中调用托管类,并且我想通过 #using <mscorlib.dll> 来做,但我总遇到“/RTC1 incompatible with /clr”。那么我如何才能从 MFC 应用程序中调用 .NET?

Julian Kinsey

你当然可以从你的 MFC 程序中调用 .NET!就像 Windows 中的其它机制一样,一旦你知道了正确的方法,它是很容易的。当你着手创建 MFC 程序时,应用程序向导(App Wizard)为你设置所有的编译选项。其中之一是项目配置属性中“C/C++|代码生成”项下的“基本运行时检查”。在创建 MFC 程序时,应用程序向导在调试版本中选择“两者/RTC1,等同于/RTCsu)”以实现运行时检查,如检查堆栈帧、未初始化变量或缓冲溢出及内存不足。这些检查与 /clr 不兼容,因为托管代码完全不同(它是 Microsoft 的中间语言,非本机语言),但是当你添加 /clr ,那么 IDE 不会自动移除 /REC1。所以你必须用手动方式来做。

上一页  1 2 3 4 5  下一页

Tags:如何 MFC 应用程序

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接