`
touchinsert
  • 浏览: 1291104 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

VC6.0和VS2005:C++和C#编写调用COM组件

 
阅读更多
    这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。

    前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:

    1、在VS2005中,C#编写DLL并使用C++调用

    2、在VS2005中C#编写的COM组件,使用VC6.0调用

    3、在VC6.0中编写COM组件,使用VS2005 C#调用

    4、在VC6.0中编写COM组件,使用VC6.0调用

    其中每个类型都写了两个程序,一个为COM组件程序,一个为调用程序

    程序实现:

    1、在VS2005中,C#编写DLL并使用C++调用

    (1)C#编写DLL程序

    建立C#编写的DLL程序AddDll,项目类型为:类库

    程序代码:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. namespaceAddDll
  5. {
  6. publicclassAdd
  7. {
  8. publicintiadd(inta,intb)
  9. {
  10. intc=a+b;
  11. returnc;
  12. }
  13. }
  14. }

(2)C++编写调用程序

建立C++的Win32控制台应用程序UseDll,项目类型为:Win32控制台应用程序

配置:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”

公共语言运行库设置

C++编写调用程序:公共语言运行库设置

程序代码:

  1. #include"stdafx.h"
  2. #include"stdio.h"
  3. #using"../debug/AddDll.dll"
  4. usingnamespaceAddDll;
  5. int_tmain(intargc,_TCHAR*argv[])
  6. {
  7. intresult;
  8. Add^add=gcnewAdd();
  9. result=add->iadd(10,90);
  10. printf("%d",result);
  11. scanf("%s");
  12. return0;
  13. }

2、在VS2005中C#编写的COM组件,使用VC6.0调用

(1)VS2005中使用C#编写COM组件

建立C#编写的COM组件,项目类型为类库

配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)”

打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)]

这用就可以生成AddCom.tlb文件

VS2005中使用C#编写COM组件:COM生成设置

程序代码:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. usingSystem.Runtime.InteropServices;
  5. namespaceAddCom
  6. {
  7. //可以通过//菜单的“工具/guid生成”。
  8. //注意要选择DefineGuid{….}格式,并全//部保存下来,保存到哪都行,记事本呀什么的。
  9. //因为在做VC程序/////////的时候要用到的。
  10. [Guid("298D881C-E2A3-4638-B872-73EADE25511C")]
  11. publicinterfaceAddComInterface
  12. {
  13. [DispId(1)]
  14. intiadd(inta,intb);
  15. [DispId(2)]
  16. floatladd(floata,floatb);
  17. }
  18. [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")]
  19. [ClassInterface(ClassInterfaceType.None)]
  20. publicclassAddComService:AddComInterface
  21. {
  22. publicAddComService()
  23. {
  24. }
  25. publicintiadd(inta,intb)
  26. {
  27. intc=0;
  28. c=a+b;
  29. returnc;
  30. }
  31. publicfloatladd(floata,floatb)
  32. {
  33. floatc=0;
  34. c=a+b;
  35. returnc;
  36. }
  37. }
  38. }

(2)VC6.0编写调用程序

使用VC6.0编写建立MFC应用程序UseCom,项目类型为MFC AppWizard(exe)

在stdafx.h添加:

  1. #import"AddCom.tlb"
  2. usingnamespaceAddCom;

程序代码:

  1. voidCUseComDlg::OnButtonUse()
  2. {
  3. //TODO:Addyourcontrolnotificationhandlercodehere
  4. intdresult;
  5. floatfresult;
  6. CStringstrResult;
  7. CoInitialize(NULL);//NULL换成0也可以
  8. AddCom::AddComInterfacePtrp_Add(__uuidof(AddComService));
  9. dresult=p_Add->iadd(1,2);
  10. fresult=p_Add->fadd(1.2,2.3);
  11. strResult.Format("int:%d/nfloat:%f",dresult,fresult);
  12. MessageBox(strResult,"计算结果",MB_OK);
  13. CoUninitialize();
  14. }

3、在VC6.0中编写COM组件,使用VS2005 C#调用

(1)VC6.0编写COM

使用VC6.0建立COM组件,工程类型:ATL COM AppWizard

程序代码:

接口:

  1. interfaceIAdd:IDispatch
  2. {
  3. [id(1),helpstring("methodiadd")]HRESULTiadd([in]inta,[in]intb,[out]int*c);
  4. [id(2),helpstring("methodfadd")]HRESULTfadd([in]floata,[in]floatb,[out]float*c);
  5. [id(3),helpstring("methodisub")]HRESULTisub([in]inta,[in]intb,[out]int*c);
  6. };

实现:

  1. STDMETHODIMPCAdd::iadd(inta,intb,int*c)
  2. {
  3. //TODO:Addyourimplementationcodehere
  4. *c=a+b;
  5. returnS_OK;
  6. }
  7. STDMETHODIMPCAdd::fadd(floata,floatb,float*c)
  8. {
  9. //TODO:Addyourimplementationcodehere
  10. *c=a+b;
  11. returnS_OK;
  12. }
  13. STDMETHODIMPCAdd::isub(inta,intb,int*c)
  14. {
  15. //TODO:Addyourimplementationcodehere
  16. *c=a-b;
  17. returnS_OK;
  18. }

(2)VS2005使用C#编写调用程序(网站程序)

使用VS2005建立网站UseCom

配置:在解决方案资源管理器中的主目录点击右键,选择添加引用,选择COM,添加刚刚建立的AddCom 1.0 Type Library

在程序中要using编写的COM组件:using ADDCOMLib;

引用COM

VS2005使用C#编写调用程序:引用COM

程序代码:

  1. usingSystem;
  2. usingSystem.Data;
  3. usingSystem.Configuration;
  4. usingSystem.Web;
  5. usingSystem.Web.Security;
  6. usingSystem.Web.UI;
  7. usingSystem.Web.UI.WebControls;
  8. usingSystem.Web.UI.WebControls.WebParts;
  9. usingSystem.Web.UI.HtmlControls;
  10. usingADDCOMLib;
  11. publicpartialclass_Default:System.Web.UI.Page
  12. {
  13. protectedvoidPage_Load(objectsender,EventArgse)
  14. {
  15. }
  16. protectedvoidButtonCom_Click(objectsender,EventArgse)
  17. {
  18. Addadd=newAdd();
  19. intiresult;
  20. floatfresult;
  21. intsresult;
  22. add.IAdd(10,20,outiresult);
  23. add.fadd((float)1.2,(float)2.3,outfresult);
  24. add.isub(100,10,outsresult);
  25. TextBoxResult.Text=iresult.ToString();
  26. TextBoxRe2.Text=fresult.ToString();
  27. TextBoxRe3.Text=sresult.ToString();
  28. }
  29. }

4、在VC6.0中编写COM组件,使用VC6.0调用

(1)VC6.0编写COM组件

使用VC6.0建立COM组件,工程类型:ATL COM AppWizard

程序代码:

接口:

  1. interfaceIAdd:IDispatch
  2. {
  3. [id(1),helpstring("methodiadd")]HRESULTiadd([in]inta,[in]intb,[out]int*c);
  4. [id(2),helpstring("methodfadd")]HRESULTfadd([in]floata,[in]floatb,[out]float*c);
  5. [id(3),helpstring("methodisub")]HRESULTisub([in]inta,[in]intb,[out]int*c);
  6. };

实现:

  1. STDMETHODIMPCAdd::iadd(inta,intb,int*c)
  2. {
  3. //TODO:Addyourimplementationcodehere
  4. *c=a+b;
  5. returnS_OK;
  6. }
  7. STDMETHODIMPCAdd::fadd(floata,floatb,float*c)
  8. {
  9. //TODO:Addyourimplementationcodehere
  10. *c=a+b;
  11. returnS_OK;
  12. }
  13. STDMETHODIMPCAdd::isub(inta,intb,int*c)
  14. {
  15. //TODO:Addyourimplementationcodehere
  16. *c=a-b;
  17. returnS_OK;
  18. }

(2)VC6.0编写调用程序

使用VC6.0建立MFC应用程序UseCOM,调用刚刚建立的COM组件

将上面程序AddCom生成的AddCom.dll放入本程序的工程目录和程序生成目录中

在StdAfx.h中加入:

  1. #import"AddCom.dll"no_namespace

程序代码:

  1. voidCUseComDlg::OnBUTTONUse()
  2. {
  3. //TODO:Addyourcontrolnotificationhandlercodehere
  4. CStringstrResult;
  5. CoInitialize(NULL);//NULL换成0也可以
  6. IAddPtrm_add=NULL;
  7. HRESULThr=S_OK;
  8. hr=m_add.CreateInstance(__uuidof(Add));
  9. intd_a=90;
  10. intd_b=10;
  11. intd_c;
  12. intd_d;
  13. floatf_a=1;
  14. floatf_b=2;
  15. floatf_c;
  16. m_add->_IAdd(d_a,d_b,&d_c);
  17. m_add->fadd(f_a,f_b,&f_c);
  18. m_add->isub(d_a,d_b,&d_d);
  19. strResult.Format("返回结果:%d;%f;%d",d_c,f_c,d_d);
  20. MessageBox(strResult,"结果",MB_OK);
  21. m_add.Release();
  22. m_add=NULL;
  23. CoUninitialize();
  24. }
    这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和VS2005之间互相调用COM组件。

    前一阵在工作中做项目的时候,遇到了COM组件的调用和使用问题,当时研究和好一阵,才把中间的环节打通,现在写出来为大家提供方便,这里包含了四个类型:

    1、在VS2005中,C#编写DLL并使用C++调用

    2、在VS2005中C#编写的COM组件,使用VC6.0调用

    3、在VC6.0中编写COM组件,使用VS2005 C#调用

    4、在VC6.0中编写COM组件,使用VC6.0调用

    其中每个类型都写了两个程序,一个为COM组件程序,一个为调用程序

    程序实现:

    1、在VS2005中,C#编写DLL并使用C++调用

    (1)C#编写DLL程序

    建立C#编写的DLL程序AddDll,项目类型为:类库

    程序代码:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. namespaceAddDll
  5. {
  6. publicclassAdd
  7. {
  8. publicintiadd(inta,intb)
  9. {
  10. intc=a+b;
  11. returnc;
  12. }
  13. }
  14. }

(2)C++编写调用程序

建立C++的Win32控制台应用程序UseDll,项目类型为:Win32控制台应用程序

配置:右键点击解决方案资源管理器中的UseDll,选择“属性”,将公共语言运行库支持设置为“公共语言运行库支持(/clr)”

公共语言运行库设置

C++编写调用程序:公共语言运行库设置

程序代码:

  1. #include"stdafx.h"
  2. #include"stdio.h"
  3. #using"../debug/AddDll.dll"
  4. usingnamespaceAddDll;
  5. int_tmain(intargc,_TCHAR*argv[])
  6. {
  7. intresult;
  8. Add^add=gcnewAdd();
  9. result=add->iadd(10,90);
  10. printf("%d",result);
  11. scanf("%s");
  12. return0;
  13. }

2、在VS2005中C#编写的COM组件,使用VC6.0调用

(1)VS2005中使用C#编写COM组件

建立C#编写的COM组件,项目类型为类库

配置:右键点击解决方案资源管理器中的AddCom,选择“属性”,选择“生成”,选择“为COM Interop注册(_P)”

打开AssemblyInfo.cs文件,设置[assembly: ComVisible(true)]

这用就可以生成AddCom.tlb文件

VS2005中使用C#编写COM组件:COM生成设置

程序代码:

  1. usingSystem;
  2. usingSystem.Collections.Generic;
  3. usingSystem.Text;
  4. usingSystem.Runtime.InteropServices;
  5. namespaceAddCom
  6. {
  7. //可以通过//菜单的“工具/guid生成”。
  8. //注意要选择DefineGuid{….}格式,并全//部保存下来,保存到哪都行,记事本呀什么的。
  9. //因为在做VC程序/////////的时候要用到的。
  10. [Guid("298D881C-E2A3-4638-B872-73EADE25511C")]
  11. publicinterfaceAddComInterface
  12. {
  13. [DispId(1)]
  14. intiadd(inta,intb);
  15. [DispId(2)]
  16. floatladd(floata,floatb);
  17. }
  18. [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467")]
  19. [ClassInterface(ClassInterfaceType.None)]
  20. publicclassAddComService:AddComInterface
  21. {
  22. publicAddComService()
  23. {
  24. }
  25. publicintiadd(inta,intb)
  26. {
  27. intc=0;
  28. c=a+b;
  29. returnc;
  30. }
  31. publicfloatladd(floata,floatb)
  32. {
  33. floatc=0;
  34. c=a+b;
  35. returnc;
  36. }
  37. }
  38. }

(2)VC6.0编写调用程序

使用VC6.0编写建立MFC应用程序UseCom,项目类型为MFC AppWizard(exe)

在stdafx.h添加:

  1. #import"AddCom.tlb"
  2. usingnamespaceAddCom;

程序代码:

  1. voidCUseComDlg::OnButtonUse()
  2. {
  3. //TODO:Addyourcontrolnotificationhandlercodehere
  4. intdresult;
  5. floatfresult;
  6. CStringstrResult;
  7. CoInitialize(NULL);//NULL换成0也可以
  8. AddCom::AddComInterfacePtrp_Add(__uuidof(AddComService));
  9. dresult=p_Add->iadd(1,2);
  10. fresult=p_Add->fadd(1.2,2.3);
  11. strResult.Format("int:%d/nfloat:%f",dresult,fresult);
  12. MessageBox(strResult,"计算结果",MB_OK);
  13. CoUninitialize();
  14. }

3、在VC6.0中编写COM组件,使用VS2005 C#调用

(1)VC6.0编写COM

使用VC6.0建立COM组件,工程类型:ATL COM AppWizard

程序代码:

接口:

  1. interfaceIAdd:IDispatch
  2. {
  3. [id(1),helpstring("methodiadd")]HRESULTiadd([in]inta,[in]intb,[out]int*c);
  4. [id(2),helpstring("methodfadd")]HRESULTfadd([in]floata,[in]floatb,[out]float*c);
  5. [id(3),helpstring("methodisub")]HRESULTisub([in]inta,[in]intb,[out]int*c);
  6. };

实现:

  1. STDMETHODIMPCAdd::iadd(inta,intb,int*c)
  2. {
  3. //TODO:Addyourimplementationcodehere
  4. *c=a+b;
  5. returnS_OK;
  6. }
  7. STDMETHODIMPCAdd::fadd(floata,floatb,float*c)
  8. {
  9. //TODO:Addyourimplementationcodehere
  10. *c=a+b;
  11. returnS_OK;
  12. }
  13. STDMETHODIMPCAdd::isub(inta,intb,int*c)
  14. {
  15. //TODO:Addyourimplementationcodehere
  16. *c=a-b;
  17. returnS_OK;
  18. }

(2)VS2005使用C#编写调用程序(网站程序)

使用VS2005建立网站UseCom

配置:在解决方案资源管理器中的主目录点击右键,选择添加引用,选择COM,添加刚刚建立的AddCom 1.0 Type Library

在程序中要using编写的COM组件:using ADDCOMLib;

引用COM

VS2005使用C#编写调用程序:引用COM

程序代码:

  1. usingSystem;
  2. usingSystem.Data;
  3. usingSystem.Configuration;
  4. usingSystem.Web;
  5. usingSystem.Web.Security;
  6. usingSystem.Web.UI;
  7. usingSystem.Web.UI.WebControls;
  8. usingSystem.Web.UI.WebControls.WebParts;
  9. usingSystem.Web.UI.HtmlControls;
  10. usingADDCOMLib;
  11. publicpartialclass_Default:System.Web.UI.Page
  12. {
  13. protectedvoidPage_Load(objectsender,EventArgse)
  14. {
  15. }
  16. protectedvoidButtonCom_Click(objectsender,EventArgse)
  17. {
  18. Addadd=newAdd();
  19. intiresult;
  20. floatfresult;
  21. intsresult;
  22. add.IAdd(10,20,outiresult);
  23. add.fadd((float)1.2,(float)2.3,outfresult);
  24. add.isub(100,10,outsresult);
  25. TextBoxResult.Text=iresult.ToString();
  26. TextBoxRe2.Text=fresult.ToString();
  27. TextBoxRe3.Text=sresult.ToString();
  28. }
  29. }

4、在VC6.0中编写COM组件,使用VC6.0调用

(1)VC6.0编写COM组件

使用VC6.0建立COM组件,工程类型:ATL COM AppWizard

程序代码:

接口:

  1. interfaceIAdd:IDispatch
  2. {
  3. [id(1),helpstring("methodiadd")]HRESULTiadd([in]inta,[in]intb,[out]int*c);
  4. [id(2),helpstring("methodfadd")]HRESULTfadd([in]floata,[in]floatb,[out]float*c);
  5. [id(3),helpstring("methodisub")]HRESULTisub([in]inta,[in]intb,[out]int*c);
  6. };

实现:

  1. STDMETHODIMPCAdd::iadd(inta,intb,int*c)
  2. {
  3. //TODO:Addyourimplementationcodehere
  4. *c=a+b;
  5. returnS_OK;
  6. }
  7. STDMETHODIMPCAdd::fadd(floata,floatb,float*c)
  8. {
  9. //TODO:Addyourimplementationcodehere
  10. *c=a+b;
  11. returnS_OK;
  12. }
  13. STDMETHODIMPCAdd::isub(inta,intb,int*c)
  14. {
  15. //TODO:Addyourimplementationcodehere
  16. *c=a-b;
  17. returnS_OK;
  18. }

(2)VC6.0编写调用程序

使用VC6.0建立MFC应用程序UseCOM,调用刚刚建立的COM组件

将上面程序AddCom生成的AddCom.dll放入本程序的工程目录和程序生成目录中

在StdAfx.h中加入:

  1. #import"AddCom.dll"no_namespace

程序代码:

  1. voidCUseComDlg::OnBUTTONUse()
  2. {
  3. //TODO:Addyourcontrolnotificationhandlercodehere
  4. CStringstrResult;
  5. CoInitialize(NULL);//NULL换成0也可以
  6. IAddPtrm_add=NULL;
  7. HRESULThr=S_OK;
  8. hr=m_add.CreateInstance(__uuidof(Add));
  9. intd_a=90;
  10. intd_b=10;
  11. intd_c;
  12. intd_d;
  13. floatf_a=1;
  14. floatf_b=2;
  15. floatf_c;
  16. m_add->_IAdd(d_a,d_b,&d_c);
  17. m_add->fadd(f_a,f_b,&f_c);
  18. m_add->isub(d_a,d_b,&d_d);
  19. strResult.Format("返回结果:%d;%f;%d",d_c,f_c,d_d);
  20. MessageBox(strResult,"结果",MB_OK);
  21. m_add.Release();
  22. m_add=NULL;
  23. CoUninitialize();
  24. }
分享到:
评论

相关推荐

    C++和C#编写调用COM组件

    摘要:现在COM组件的使用越来越广泛,在各个程序中调用COM组件我想大家都遇到过,这篇文章就是关于COM组件的编写和调用的,主要包含了使用VC6.0编写和调用COM组件,VS2005中使用C#编写和调用COM组件,以及在VC6.0和...

    C++和C#相互调用dll

    在VS2005中,C#编写DLL并使用C++调用 在VS2005中C#编写的COM组件,使用VC6.0调用 在VC6.0中编写COM组件,使用VS2005 C#调用 在VC6.0中编写COM组件,使用VC6.0调用

    阳光人脸识别二次开发包

    C#范例: C#调用sunlightdface.dll的范例代码。(VS2005) 注意:只能用于C#(2005)或以上版本。 VB范例: VB6.0调用sunlightdface.dll的范例代码。(VS6.0) VC范例: VC7.1调用sunlightdface.dll的范例代码。(VS2003) ...

    COM组件.pdf

    现在COM 组件的使用越来越广泛,在各个程序中调用COM 组件我想大家都遇到过,这篇文章就是关于COM 组件的编写和调用的, 主要包含了使用VC6.0 编写和调用COM 组件,VS2005 中使用C#编写和调用COM 组件, 以及在VC6.0...

    C#中byte数组和c++结构体的转换

    在写C#TCP通信程序时,发送数据时,只能发送byte数组,处理起来比较麻烦不说,如果是和c++等写的程序通信的话,很多的都是传送结构体,在VC6.0中可以很方便的把一个char[]数组转换为一个结构体,而在C#却不能直接把...

    COM组件开发及方法调用方法

    包括两个例子: 1 用vc6.0写的com ,并在vc6.0中 用三种方法调用。可以在.net中编译通过 2 用c#写的com, 用.net c++ 调用 注意:如果不编译com项目,在使用前需要注册com

    Opencv配置VC++

    OpenCV用C++语言编写,它的主要接口也是C++语言,但是依然保留了大量的C语言接口。该库也有大量的Python、Java and MATLAB/OCTAVE(版本2.5)的接口。这些语言的API接口函数可以通过在线文档获得。如今也提供对于C#...

    使用IOCP技术开发的动态库,并提供源代码,调用DEMO

    本文将介绍ICOP服务器的开发,并提供源代码,动态库,调用DEMO(VC,C#,Delphi7)。希望各位的下载试用,提供宝贵建议。 阅读源代码最好对C++,TCP/IP,socket编程,多线程和MFC有一定了解。 程序编译环境:...

    ACWPS(爱博汉语分词系统)分词组件 asp分词组件

    如:PHP、JSP、ASP、ASP.net、C/C++ 、VC6.0 、VC.net、BC、C#、VB6.0 、VB.net、Delphi、Java等。 爱博汉语分词系统支持自定义词语的功能,用户可根据自己需要定义添加汉语词组。 可根据需要自行定义影响检索结果...

    炫彩界面库(DirectUI,C&C++,v1.3.1)

    支持:VC6.0,VS2005,VS2008,VS2010,易语言,C#,以及支持动态链接库调用和回调函数的开发工具和语言. 使用时请导入XCGUI.LIB文件,并包含XCGUI.h头文件. XCGUId.LIB为调试版 在使用中请参考炫彩界面库帮助文档: ...

    固高GTS-VB运动控制卡编程手册1.4.rar

    2.1.1 Visual C++ 6.0 中的使用 (1) 启动Visual C++ 6.0,新建一个工程; (2) 将下载的动态链接库压缩包里VC文件夹中的动态链接库、头文件和lib文件复制到工程文件 夹中; 第 2 章 运动控制器函数库的使用 15 © ...

    炫彩界面库v1.3.3

    支持:VC6.0,VS2005,VS2008,VS2010,易语言,C#,以及支持动态链接库调用和回调函数的开发工具和语言. 使用时请导入XCGUI.LIB文件,并包含XCGUI.h头文件. XCGUId.LIB为调试版 在使用中请参考炫彩界面库帮助文档: ...

    csw5.0中文分词组件

    如:PHP、JSP、ASP、 ASP.net、C/C++ 、VC6.0 、VC.net、BC、C#、VB6.0 、VB.net、Delphi、Java等。 3. 响应速度快 由于本组件采用高效特殊的算法引擎结构,每秒钟拆分可达数万字汉语文本,在对搜索关键词进行拆分...

    炫彩界面库

    支持:VC6.0,VS2005,VS2008,VS2010,易语言,C#,以及支持动态链接库调用和回调函数的开发工具和语言. 使用时请导入XCGUI.LIB文件,并包含XCGUI.h头文件. XCGUId.LIB为调试版 在使用中请参考炫彩界面库帮助文档: ...

    vc++ 应用源码包_6

    MFC+DLL的编写和调用示例 MFC换肤完全贴图实现 Smile简体版 Linux内核完全注释附 MFC+消息循环贴图---金山毒霸界面 自绘控件实现。 MFCDemo DirectUI移植到MFC中实现。 MFCHtml 调用脚本 MFC使用COM加载WMI...

    中文分词学习版

    1. C#调用示例代码 首先运行本组件包中的install.bat文件,在系统中注册本组件。 然后在开发工具中引用CSW.dll组件 //以下为C#控制台应用程序中调用本组件示例代码. CSWLib.SplitWordClass csw = new CSWLib....

    编程技巧(全部工程源代码,物超所值)

    软件在线升级程序的设计 软件在线升级程序的设计 用C++Builder 6.0实现远程控制 利用C#调用Microsoft.Win32命名空间中的类实现对注册表的读取管理 用C#开发手机短信收发程序 远程计算机重启原理及实现 VC++6.0...

    vc++ 开发实例源码包

    MFC+DLL的编写和调用示例 如题。 MFC换肤完全贴图实现 如题。 Smile简体版 很简单,只能播放mp3格式的音乐。 功能: --------------------------------------- --------关闭-- 打开----最小化------- ----------...

    VC++设置打印纸张大小的简单例子

    VC++自定义打印的源码实例下载,设置打印纸张大小的简单例子,如运行截图所示的控制面板中,可对打印纸进行自定义,单位为毫米,自定义打印纸宽度和高度,源码在VC6.0下直接编译生成。 运行环境:Windows/Visual C/...

    C程序设计语言(第2版·新版中文)

    热门Tag JAVA C++ linux C# 教程 C语言 android 源码 PDF 编程 sql c Windows matlab ORACLE 源代码 api 中文 数据库 arm JavaScript 破解 数据结构 vc visual jQuery 计算机 答案 单片机 php JSP mfc .NET 中文版 ...

Global site tag (gtag.js) - Google Analytics