c语言sscanf函数的用法是什么
258
2022-09-16
vc++如何调用.Ner Framewrok类库 ( 读写注册表示例)(CLI的一些应用)
.net Framework类库越来越丰富了。伴随vs2008已经3.5版本了。
以前写程序很少会去调用.net framework,不过随着微软的主推,和不断对其进行扩展。
其功能正在逐渐强大,使用更加简洁和方便。
这里通过对注册表的操作。我们来看看vc++.net程序。
说明:以下代码在vs2005下编译。
简单的说传统的c++如何调用net frame.
一些预备知识:
为什么会出现"^"符号呢?
在netframe下,为了保持托管堆上的对象的引用能够被垃圾收集器跟踪,且当这个对象被移动的时候,这个句柄可以被及时的更新。而传统的指针和引用无法被正确跟踪,所以产生了^来表示一个托管堆上对象的句柄。
其可以用->来访问其成员。
什么时候用 ^ 呢?
[ComVisibleAttribute(true)] public ref class RegistryKey sealed : public MarshalByRefObject, IDisposable
看到ref了吧,
以下三个例子应该很容易看懂了。
1. 将数据写入注册表
using namespace System;using namespace Microsoft::Win32;
int main(){ // The second OpenSubKey argument indicates that // the subkey should be writable. RegistryKey^ rk;
//托管堆上的一个句柄 rk = Registry::CurrentUser->OpenSubKey("Software", true);
//静态成员可以通过其类名直接访问 if (!rk) { Console::WriteLine("Failed to open CurrentUser/Software key"); return -1; } RegistryKey^ nk = rk->CreateSubKey("NewRegKey"); if (!nk) { Console::WriteLine("Failed to create 'NewRegKey'"); return -1; }
String^ newValue = "NewValue"; try { nk->SetValue("NewKey", newValue); nk->SetValue("NewKey2", 44); } catch (Exception^) { Console::WriteLine("Failed to set new values in 'NewRegKey'"); return -1; }
Console::WriteLine("New key created."); Console::Write("Use REGEDIT.EXE to verify "); Console::WriteLine("'CURRENTUSER/Software/NewRegKey'\n");*/ return 0;}
2. 从注册表中读取数据
using namespace System;using namespace Microsoft::Win32;int main( ){ array
写在后面的话:
之所有写这个标题,而不写有关CLI的,国内关于cli探讨还是比较少的。
既然,有人有好的建议,加一个副标题好了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~