当前位置: 首页 > news >正文

手机动态网站制作/北京百度快照推广公司

手机动态网站制作,北京百度快照推广公司,wordpress10万数据多大,水利网站建设管理汇报直到2008年我才知道,.NET上的C已经不是托管C而是C/CLI(VS2005引入)。 这是一个进制转换器的源代码,可以进行二进制,八进制,十进制,十六进制的转换。本身没什么难的地方,主要是.net framework的使用。限于整…

直到2008年我才知道,.NET上的C++已经不是托管C++而是C++/CLI(VS2005引入)。

这是一个进制转换器的源代码,可以进行二进制,八进制,十进制,十六进制的转换。本身没什么难的地方,主要是.net framework的使用。限于整型数(_int64)的限制,输入的数太大会溢出(十六进制只能显示15位)。如果可以直接对字符串进行处理,或是对数字进行分割应该就可以实现无限大数字的进制转换了,不过我不会(汗~~)。

值得一提的是,.net程序很“可怕”,才几十K的程序占用内存竟然十几M。不过如果你最小化程序,占用内存就会迅速下降。这是因为系统调用了SetProcessWorkingSetSize函数,通过这个函数可以实现实际内存和虚拟内存的转换。所以我在构造函数和清除按钮的响应事件中加入了

SetProcessWorkingSetSize(::GetCurrentProcess(),-1,-1);

这并不是真正的内存优化,只是让程序在进程管理器中显的“好看”一些。

  1. #pragmaonce
  2. #include<windows.h>
  3. //加入windows头文件,因为我们会用到
  4. //SetProcessWorkingSetSize函数
  5. namespaceconverter{
  6. usingnamespaceSystem;
  7. usingnamespaceSystem::ComponentModel;
  8. usingnamespaceSystem::Collections;
  9. usingnamespaceSystem::Windows::Forms;
  10. usingnamespaceSystem::Data;
  11. usingnamespaceSystem::Drawing;
  12. ///<summary>
  13. ///Form1摘要
  14. ///
  15. ///警告:如果更改此类的名称,则需要更改
  16. ///与此类所依赖的所有.resx文件关联的托管资源编译器工具的
  17. ///“资源文件名”属性。否则,
  18. ///设计器将不能与此窗体的关联
  19. ///本地化资源正确交互。
  20. ///</summary>
  21. publicrefclassForm1:publicSystem::Windows::Forms::Form
  22. {
  23. public:
  24. Form1(void)
  25. {
  26. InitializeComponent();
  27. SetProcessWorkingSetSize(::GetCurrentProcess(),-1,-1);
  28. }
  29. protected:
  30. ///<summary>
  31. ///清理所有正在使用的资源。
  32. ///</summary>
  33. ~Form1()
  34. {
  35. if(components)
  36. {
  37. deletecomponents;
  38. }
  39. }
  40. private:System::Windows::Forms::Label^label1;
  41. protected:
  42. private:System::Windows::Forms::Label^label2;
  43. private:System::Windows::Forms::Label^label3;
  44. private:System::Windows::Forms::Label^label4;
  45. private:System::Windows::Forms::TextBox^tex2;
  46. private:System::Windows::Forms::TextBox^tex8;
  47. private:System::Windows::Forms::TextBox^tex10;
  48. private:System::Windows::Forms::TextBox^tex16;
  49. private:System::Windows::Forms::Button^btnClear;
  50. private:
  51. ///<summary>
  52. ///必需的设计器变量。
  53. ///</summary>
  54. System::ComponentModel::Container^components;
  55. #pragmaregionWindowsFormDesignergeneratedcode
  56. ///<summary>
  57. ///设计器支持所需的方法-不要
  58. ///使用代码编辑器修改此方法的内容。
  59. ///</summary>
  60. voidInitializeComponent(void)
  61. {
  62. System::ComponentModel::ComponentResourceManager^resources=(gcnewSystem::ComponentModel::ComponentResourceManager(Form1::typeid));
  63. this->label1=(gcnewSystem::Windows::Forms::Label());
  64. this->label2=(gcnewSystem::Windows::Forms::Label());
  65. this->label3=(gcnewSystem::Windows::Forms::Label());
  66. this->label4=(gcnewSystem::Windows::Forms::Label());
  67. this->tex2=(gcnewSystem::Windows::Forms::TextBox());
  68. this->tex8=(gcnewSystem::Windows::Forms::TextBox());
  69. this->tex10=(gcnewSystem::Windows::Forms::TextBox());
  70. this->tex16=(gcnewSystem::Windows::Forms::TextBox());
  71. this->btnClear=(gcnewSystem::Windows::Forms::Button());
  72. this->SuspendLayout();
  73. //
  74. //label1
  75. //
  76. this->label1->AutoSize=true;
  77. this->label1->BackColor=System::Drawing::Color::Transparent;
  78. this->label1->Location=System::Drawing::Point(12,9);
  79. this->label1->Name=L"label1";
  80. this->label1->Size=System::Drawing::Size(53,12);
  81. this->label1->TabIndex=0;
  82. this->label1->Text=L"二进制:";
  83. //
  84. //label2
  85. //
  86. this->label2->AutoSize=true;
  87. this->label2->BackColor=System::Drawing::Color::Transparent;
  88. this->label2->Location=System::Drawing::Point(12,38);
  89. this->label2->Name=L"label2";
  90. this->label2->Size=System::Drawing::Size(53,12);
  91. this->label2->TabIndex=1;
  92. this->label2->Text=L"八进制:";
  93. //
  94. //label3
  95. //
  96. this->label3->AutoSize=true;
  97. this->label3->BackColor=System::Drawing::Color::Transparent;
  98. this->label3->Location=System::Drawing::Point(12,67);
  99. this->label3->Name=L"label3";
  100. this->label3->Size=System::Drawing::Size(53,12);
  101. this->label3->TabIndex=2;
  102. this->label3->Text=L"十进制:";
  103. //
  104. //label4
  105. //
  106. this->label4->AutoSize=true;
  107. this->label4->BackColor=System::Drawing::Color::Transparent;
  108. this->label4->Location=System::Drawing::Point(12,96);
  109. this->label4->Name=L"label4";
  110. this->label4->Size=System::Drawing::Size(65,12);
  111. this->label4->TabIndex=3;
  112. this->label4->Text=L"十六进制:";
  113. //
  114. //tex2
  115. //
  116. this->tex2->Location=System::Drawing::Point(79,6);
  117. this->tex2->Name=L"tex2";
  118. this->tex2->Size=System::Drawing::Size(248,21);
  119. this->tex2->TabIndex=4;
  120. this->tex2->TextChanged+=gcnewSystem::EventHandler(this,&Form1::tex2_TextChanged);
  121. this->tex2->KeyDown+=gcnewSystem::Windows::Forms::KeyEventHandler(this,&Form1::tex2_KeyDown);
  122. this->tex2->KeyPress+=gcnewSystem::Windows::Forms::KeyPressEventHandler(this,&Form1::tex2_KeyPress);
  123. //
  124. //tex8
  125. //
  126. this->tex8->Location=System::Drawing::Point(79,36);
  127. this->tex8->Name=L"tex8";
  128. this->tex8->Size=System::Drawing::Size(248,21);
  129. this->tex8->TabIndex=5;
  130. this->tex8->TextChanged+=gcnewSystem::EventHandler(this,&Form1::tex8_TextChanged);
  131. this->tex8->KeyDown+=gcnewSystem::Windows::Forms::KeyEventHandler(this,&Form1::tex8_KeyDown);
  132. this->tex8->KeyPress+=gcnewSystem::Windows::Forms::KeyPressEventHandler(this,&Form1::tex8_KeyPress);
  133. //
  134. //tex10
  135. //
  136. this->tex10->Location=System::Drawing::Point(79,66);
  137. this->tex10->Name=L"tex10";
  138. this->tex10->Size=System::Drawing::Size(248,21);
  139. this->tex10->TabIndex=6;
  140. this->tex10->TextChanged+=gcnewSystem::EventHandler(this,&Form1::tex10_TextChanged);
  141. this->tex10->KeyDown+=gcnewSystem::Windows::Forms::KeyEventHandler(this,&Form1::tex10_KeyDown);
  142. this->tex10->KeyPress+=gcnewSystem::Windows::Forms::KeyPressEventHandler(this,&Form1::tex10_KeyPress);
  143. //
  144. //tex16
  145. //
  146. this->tex16->Location=System::Drawing::Point(79,96);
  147. this->tex16->Name=L"tex16";
  148. this->tex16->Size=System::Drawing::Size(248,21);
  149. this->tex16->TabIndex=7;
  150. this->tex16->TextChanged+=gcnewSystem::EventHandler(this,&Form1::tex16_TextChanged);
  151. this->tex16->KeyDown+=gcnewSystem::Windows::Forms::KeyEventHandler(this,&Form1::tex16_KeyDown);
  152. this->tex16->KeyPress+=gcnewSystem::Windows::Forms::KeyPressEventHandler(this,&Form1::tex16_KeyPress);
  153. //
  154. //btnClear
  155. //
  156. this->btnClear->DialogResult=System::Windows::Forms::DialogResult::Cancel;
  157. this->btnClear->Location=System::Drawing::Point(340,94);
  158. this->btnClear->Name=L"btnClear";
  159. this->btnClear->Size=System::Drawing::Size(50,23);
  160. this->btnClear->TabIndex=8;
  161. this->btnClear->Text=L"清除";
  162. this->btnClear->UseVisualStyleBackColor=true;
  163. this->btnClear->Click+=gcnewSystem::EventHandler(this,&Form1::btnClear_Click);
  164. //
  165. //Form1
  166. //
  167. this->AutoScaleDimensions=System::Drawing::SizeF(6,12);
  168. this->AutoScaleMode=System::Windows::Forms::AutoScaleMode::Font;
  169. this->BackColor=System::Drawing::SystemColors::Window;
  170. this->BackgroundImage=(cli::safe_cast<System::Drawing::Image^>(resources->GetObject(L"$this.BackgroundImage")));
  171. this->CancelButton=this->btnClear;
  172. this->ClientSize=System::Drawing::Size(402,133);
  173. this->Controls->Add(this->btnClear);
  174. this->Controls->Add(this->tex16);
  175. this->Controls->Add(this->tex10);
  176. this->Controls->Add(this->tex8);
  177. this->Controls->Add(this->tex2);
  178. this->Controls->Add(this->label4);
  179. this->Controls->Add(this->label3);
  180. this->Controls->Add(this->label2);
  181. this->Controls->Add(this->label1);
  182. this->FormBorderStyle=System::Windows::Forms::FormBorderStyle::Fixed3D;
  183. this->Icon=(cli::safe_cast<System::Drawing::Icon^>(resources->GetObject(L"$this.Icon")));
  184. this->MaximizeBox=false;
  185. this->Name=L"Form1";
  186. this->Opacity=0.8;
  187. this->Text=L"进制转换器";
  188. this->TopMost=true;
  189. this->ResumeLayout(false);
  190. this->PerformLayout();
  191. }
  192. #pragmaendregion
  193. //textbox改变时调用ConvertString来更新其他textbox
  194. //我们要单独对空字符串进行处理,因为函数不支持空字符串
  195. private:System::Voidtex2_TextChanged(System::Object^sender,System::EventArgs^e){
  196. if(tex2->Text!="")
  197. {
  198. tex8->Text=ConvertString(tex2->Text,2,8);
  199. tex10->Text=ConvertString(tex2->Text,2,10);
  200. tex16->Text=ConvertString(tex2->Text,2,16);
  201. }
  202. else
  203. {
  204. tex8->Text="";
  205. tex10->Text="";
  206. tex16->Text="";
  207. }
  208. }
  209. private:System::Voidtex8_TextChanged(System::Object^sender,System::EventArgs^e){
  210. if(tex8->Text!="")
  211. {
  212. tex2->Text=ConvertString(tex8->Text,8,2);
  213. tex10->Text=ConvertString(tex8->Text,8,10);
  214. tex16->Text=ConvertString(tex8->Text,8,16);
  215. }
  216. else
  217. {
  218. tex8->Text="";
  219. tex10->Text="";
  220. tex16->Text="";
  221. }
  222. }
  223. private:System::Voidtex10_TextChanged(System::Object^sender,System::EventArgs^e){
  224. if(tex10->Text!="")
  225. {
  226. tex2->Text=ConvertString(tex10->Text,10,2);
  227. tex8->Text=ConvertString(tex10->Text,10,8);
  228. tex16->Text=ConvertString(tex10->Text,10,16);
  229. }
  230. else
  231. {
  232. tex2->Text="";
  233. tex10->Text="";
  234. tex16->Text="";
  235. }
  236. }
  237. private:System::Voidtex16_TextChanged(System::Object^sender,System::EventArgs^e){
  238. if(tex16->Text!="")
  239. {
  240. tex2->Text=ConvertString(tex16->Text,16,2);
  241. tex8->Text=ConvertString(tex16->Text,16,8);
  242. tex10->Text=ConvertString(tex16->Text,16,10);
  243. }
  244. else
  245. {
  246. tex2->Text="";
  247. tex8->Text="";
  248. tex10->Text="";
  249. }
  250. }
  251. //处理按键,忽略非法按键,如二进制编辑框中输入字母
  252. private:System::Voidtex2_KeyPress(System::Object^sender,System::Windows::Forms::KeyPressEventArgs^e){
  253. wchar_tkey=e->KeyChar;
  254. if(key=='0'||key=='1')
  255. e->Handled=false;
  256. else
  257. e->Handled=true;
  258. }
  259. private:System::Voidtex8_KeyPress(System::Object^sender,System::Windows::Forms::KeyPressEventArgs^e){
  260. wchar_tkey=e->KeyChar;
  261. if(key>='0'&&key<='7'||key=='/b'||key==(wchar_t)Keys::Delete)
  262. e->Handled=false;
  263. else
  264. e->Handled=true;
  265. }
  266. private:System::Voidtex10_KeyPress(System::Object^sender,System::Windows::Forms::KeyPressEventArgs^e){
  267. wchar_tkey=e->KeyChar;
  268. if(key>='0'&&key<='9'||key=='/b'||key==(wchar_t)Keys::Delete)
  269. e->Handled=false;
  270. else
  271. e->Handled=true;
  272. }
  273. private:System::Voidtex16_KeyPress(System::Object^sender,System::Windows::Forms::KeyPressEventArgs^e){
  274. wchar_tkey=e->KeyChar;
  275. if(key>='0'&&key<='9'||key>='a'&&key<='f'||key>='A'&&key<='F'||
  276. key=='/b'||key==(wchar_t)Keys::Delete)
  277. e->Handled=false;
  278. else
  279. e->Handled=true;
  280. }
  281. private:System::VoidbtnClear_Click(System::Object^sender,System::EventArgs^e){
  282. tex2->Text="";
  283. tex8->Text="";
  284. tex10->Text="";
  285. tex16->Text="";
  286. SetProcessWorkingSetSize(::GetCurrentProcess(),-1,-1);
  287. }
  288. //字符串进制转换的程序,主要用到Convert::ToInt64和Convert::ToString
  289. //其中的异常处理主要是输入的数字太多造成数据溢出,或是复制粘贴时贴入非法字符
  290. String^ConvertString(String^const%num,intfromBase,inttoBase)
  291. {
  292. try{
  293. _int64number=Convert::ToInt64(num,fromBase);
  294. //异常处理是个大麻烦
  295. //一开始直接用ToInt64内部的发出的溢出异常,但是当在十六进制
  296. //文本框中输入16个F时,数据已经溢出,十进制窗口也显示负数,但是没有异常发送
  297. //只有当再输入一个数字时才会发送溢出异常
  298. //溢出异常同时会伴随两个参数错误的异常,为什么是两个?
  299. //现在程序也有个异常问题,就是当粘贴一个负数时,不会发送格式错误或溢出异常
  300. //但是仍有异常发生,提示字符串不能包含‘-’
  301. if(number<0)
  302. throwgcnewOverflowException();
  303. returnConvert::ToString(number,toBase);
  304. }
  305. catch(FormatException^)//格式错误异常
  306. {
  307. MessageBox::Show("格式错啦!","错误");
  308. tex2->Text="";
  309. tex8->Text="";
  310. tex10->Text="";
  311. tex16->Text="";
  312. }
  313. catch(ArgumentOutOfRangeException^)//数据溢出时会有
  314. //两个参数错误异常
  315. {
  316. }
  317. catch(OverflowException^)//数据溢出异常
  318. {
  319. MessageBox::Show("数据溢出啦!","错误");
  320. tex2->Text="";
  321. tex8->Text="";
  322. tex10->Text="";
  323. tex16->Text="";
  324. }
  325. }
  326. //组合键实现复制、粘贴、剪切、全选功能
  327. private:System::Voidtex16_KeyDown(System::Object^sender,System::Windows::Forms::KeyEventArgs^e){
  328. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::A)
  329. tex16->SelectAll();
  330. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::C)
  331. tex16->Copy();
  332. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::V)
  333. tex16->Paste();
  334. }
  335. private:System::Voidtex10_KeyDown(System::Object^sender,System::Windows::Forms::KeyEventArgs^e){
  336. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::A)
  337. tex10->SelectAll();
  338. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::C)
  339. tex10->Copy();
  340. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::V)
  341. tex10->Paste();
  342. }
  343. private:System::Voidtex8_KeyDown(System::Object^sender,System::Windows::Forms::KeyEventArgs^e){
  344. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::A)
  345. tex8->SelectAll();
  346. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::C)
  347. tex8->Copy();
  348. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::V)
  349. tex8->Paste();
  350. }
  351. private:System::Voidtex2_KeyDown(System::Object^sender,System::Windows::Forms::KeyEventArgs^e){
  352. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::A)
  353. tex2->SelectAll();
  354. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::C)
  355. tex2->Copy();
  356. if(Control::ModifierKeys==Keys::Control&&e->KeyCode==Keys::V)
  357. tex2->Paste();
  358. }
  359. };
  360. }
http://www.lbrq.cn/news/1395649.html

相关文章:

  • 无锡网站建设哪家做的比较好/专业外贸网络推广
  • 赛多利斯科学仪器北京有限公司/网站优化推广怎么做
  • 柳州网站建设找哪家好/口碑seo推广公司
  • wordpress能导入多少产品/什么是搜索引擎优化的核心
  • 学校网站div css模板/广点通
  • 网站怎么做app/哪些平台可以免费打广告
  • 黑客网站免费盗号/宁波seo整站优化
  • 学做莱网站/今天中国新闻
  • jsp网站建设项目实战源代码/百度百科创建
  • 微网站开发视频/最新国际新闻事件今天
  • 怎么样做贷款网站/下载百度语音导航地图安装
  • 鄞州区住房和城乡建设委员网站/网络营销师是干什么的
  • 威海外贸网站建设电话/如何检测网站是否安全
  • 网站关键词数量多少好/优秀网站设计
  • mvc做网站前台代码/成都营销推广公司
  • 离石做网站的公司/2345网址导航 中国最
  • wordpress调用图片路径/北京seo优化费用
  • 腾讯 网站建设/公司的网站制作
  • 保定电子商务网站建设/网络营销做得好的品牌
  • 怎么把网站做的靠前/天津放心站内优化seo
  • php做自己的网站/网站百度不收录的原因
  • 化工网站模板下载/如何自己开发软件app
  • 网站域名所有人/南宁seo计费管理
  • 企业单页网站模板/网络营销的概念
  • 黑帽seo易下拉霸屏/win10优化大师好用吗
  • 网站在建设中 英语/深圳百度推广开户
  • 无锡网站建设技术外包/电商营销策划方案
  • 万全网站建设/cilimao磁力猫最新版地址
  • 网站怎做百度代码统计/推广运营公司哪家好
  • 东莞东城做网站公司/打开百度一下
  • 迅为R3568开发板OpeHarmony学习开发手册-配置远程访问环境
  • javaweb开发笔记—— 前端工程化
  • open3d-点云函数:变换:旋转,缩放、平移,齐次变换(R,T)等
  • AI重塑软件测试:质量保障的下一站
  • “无纸化办公”加速推进,房产证智能识别技术或成行业标配
  • mycat分库分表实验