| ²é¿´: 842 | »Ø¸´: 1 | |||
¶¹×ӵĶ¹Ð³æ (³õÈëÎÄ̳)
|
[½»Á÷]
¡¾ÇóÖú¡¿ÄÄλ¸ßÈË»áÓã֣㬣֣ã«£«µ÷Óãã£ï£í×é¼þµÄ ÒÑÓÐ1È˲ÎÓë
|
| Çó¸ßÈË£¬Íò·Ö¸Ðл |
» ²ÂÄãϲ»¶
Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Ò»Ö¾Ô¸ Î÷±±´óѧ ×Ü·Ö282 Ó¢ÓïÒ»62 Çóµ÷¼Á
ÒѾÓÐ3È˻ظ´
µ÷¼Á310
ÒѾÓÐ4È˻ظ´
±±¿Æ281ѧ˶²ÄÁÏÇóµ÷¼Á
ÒѾÓÐ16È˻ظ´
Ò»Ö¾Ô¸ÉϺ£½»´óÉúÎïÓëҽҩר˶324·Ö£¬Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
Ò»Ö¾Ô¸¹þ¹¤´ó£¬085400£¬320£¬Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
316Çóµ÷¼Á
ÒѾÓÐ9È˻ظ´
085600 ²ÄÁÏÓ뻯¹¤ 329·ÖÇóµ÷¼Á
ÒѾÓÐ8È˻ظ´
0856Çóµ÷¼Á
ÒѾÓÐ6È˻ظ´
299Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:
ÄÄλ¸ßÈËÓг£ÓýðÊô×èÄá²ÄÁϵÄÐÔÄܶԱÈ
ÒѾÓÐ3È˻ظ´
ÄÄλ¸ßÈËÍÆ¼ö±¾¼òµ¥Ò×¶®µÄÐÄÀíѧÊé
ÒѾÓÐ39È˻ظ´
ÃÔãÊéͯÇó¸ßÈËÖ¸µã
ÒѾÓÐ26È˻ظ´
ÓйظßÎÂÈä±ä×°ÖõÄ˵Ã÷£¬Çó¸ßÊÖÓ¢Ò뺺
ÒѾÓÐ4È˻ظ´
²ËÄñÎÊÌ⣺VC++µ÷Óú¯Êý¹Ø±Õ×Ó´°¿ÚµÄÎÊÌâ
ÒѾÓÐ4È˻ظ´
VCµÄ»Í¼¿ò¼ÜÖУ¬ËÓõıȽ϶ࣿ
ÒѾÓÐ17È˻ظ´
ÇóÖú£ºÇë¸ßÈËÖ¸µã³¬ÂËĤ×é¼þÖÐÈçºÎÓÐЧ·ÀֹĤÎÛȾ
ÒѾÓÐ6È˻ظ´
¡¾ÇóÖú¡¿Çó·ÖÎöÒ»¸öXRDÎïÏà×é³É£¬Çë¸ßÊÖ°ïæ£¬Ð»Ð»
ÒѾÓÐ8È˻ظ´
¡¾ÇóÖú¡¿VC++ÖÐÓÃMFC½øÐжԻ°¿ò±à³Ì£¬µ÷ÓÃcatia³ÌÐò
ÒѾÓÐ13È˻ظ´
¡¾ÇóÖú¡¿VC++MFC±à³Ì£¬¶Ô»°¿òµ÷Óõ¥Îĵµ£¬»¹Òª´¦ÀíһЩ»Í¼µÄ¶«Î÷
ÒѾÓÐ16È˻ظ´
¡¾ÇóÖú¡¿VC++.NET/VC++ µ÷ÓÃEXCELÎļþÏÔʾÊý¾ÝÔٿؼþÉÏ¡¾Òѽâ¾ö¡¿
ÒѾÓÐ13È˻ظ´
¡¾ÇóÖú¡¿ÇóÈ˸ø¸övc-mdµÄÄ£°æ
ÒѾÓÐ4È˻ظ´
¡¾½»Á÷¡¿VC++, C#, VB´ðÒÉרÌù
ÒѾÓÐ145È˻ظ´
absoluty
½ð³æ (ÕýʽдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1606.9
- É¢½ð: 1548
- ºì»¨: 6
- Ìû×Ó: 430
- ÔÚÏß: 192.1Сʱ
- ³æºÅ: 869225
- ×¢²á: 2009-10-12
- ÐÔ±ð: GG
- רҵ: ¼ÆËã»úÓ¦Óü¼Êõ
¡ï ¡ï ¡ï ¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÎÞÄεÄÔÆ(½ð±Ò+5):ºÜÏêϸ£¡×¨¼ÒÐÁ¿àÁË~ 2010-06-09 09:02:35
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
ÎÞÄεÄÔÆ(½ð±Ò+5):ºÜÏêϸ£¡×¨¼ÒÐÁ¿àÁË~ 2010-06-09 09:02:35
|
C++ºÍC#±àдµ÷ÓÃCOM×é¼þ ×÷ÕߣºÐìÁ賬 ÏÂÔØÔ´´úÂë ÕªÒª£ºÏÖÔÚCOM×é¼þµÄʹÓÃÔ½À´Ô½¹ã·º£¬ÔÚ¸÷¸ö³ÌÐòÖе÷ÓÃCOM×é¼þÎÒÏë´ó¼Ò¶¼Óöµ½¹ý£¬ÕâÆªÎÄÕ¾ÍÊǹØÓÚCOM×é¼þµÄ±àдºÍµ÷Óõģ¬Ö÷Òª°üº¬ÁËʹÓÃVC6.0±àдºÍµ÷ÓÃCOM×é¼þ£¬VS2005ÖÐʹÓÃC#±àдºÍµ÷ÓÃCOM×é¼þ£¬ÒÔ¼°ÔÚVC6.0ºÍVS2005Ö®¼ä»¥Ïàµ÷ÓÃ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£¬ÏîÄ¿ÀàÐÍΪ£ºÀà¿â ³ÌÐò´úÂ룺 using System; using System.Collections.Generic; using System.Text; namespace AddDll { public class Add { public int iadd(int a, int b) { int c = a + b; return c; } } } £¨2£©C++±àдµ÷ÓóÌÐò ½¨Á¢C++µÄWin32¿ØÖÆÌ¨Ó¦ÓóÌÐòUseDll£¬ÏîÄ¿ÀàÐÍΪ£ºWin32¿ØÖÆÌ¨Ó¦ÓóÌÐò ÅäÖãºÓÒ¼üµã»÷½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷ÖеÄUseDll£¬Ñ¡Ôñ¡°ÊôÐÔ¡±£¬½«¹«¹²ÓïÑÔÔËÐпâÖ§³ÖÉèÖÃΪ¡°¹«¹²ÓïÑÔÔËÐпâÖ§³Ö(/clr)¡± ͼһ ¹«¹²ÓïÑÔÔËÐпâÉèÖóÌÐò´úÂ룺 #include "stdafx.h" #include "stdio.h" #using "..\debug\AddDll.dll" using namespace AddDll; int _tmain(int argc, _TCHAR* argv[]) { int result; Add ^add = gcnew Add(); result = add->iadd(10,90); printf("%d",result); scanf("%s" ;return 0; } 2¡¢ÔÚVS2005ÖÐC#±àдµÄCOM×é¼þ£¬Ê¹ÓÃVC6.0µ÷Óà £¨1£©VS2005ÖÐʹÓÃC#±àдCOM×é¼þ ½¨Á¢C#±àдµÄCOM×é¼þ£¬ÏîÄ¿ÀàÐÍΪÀà¿â ÅäÖãºÓÒ¼üµã»÷½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷ÖеÄAddCom£¬Ñ¡Ôñ¡°ÊôÐÔ¡±£¬Ñ¡Ôñ¡°Éú³É¡±£¬Ñ¡Ôñ¡°ÎªCOM Interop×¢²á(_P)¡± ´ò¿ªAssemblyInfo.csÎļþ£¬ÉèÖÃ[assembly: ComVisible(true)] ÕâÓþͿÉÒÔÉú³ÉAddCom.tlbÎļþ ![]() ͼ¶þ COMÉú³ÉÉèÖà ³ÌÐò´úÂ룺 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace AddCom { //¿ÉÒÔͨ¹ý//²Ëµ¥µÄ ¡°¹¤¾ß/guidÉú³É¡±¡£ //×¢ÒâҪѡÔñDefine Guid{¡.}¸ñʽ£¬²¢È«//²¿±£´æÏÂÀ´£¬±£´æµ½ÄͼÐУ¬¼Çʱ¾Ñ½Ê²Ã´µÄ¡£ //ÒòΪÔÚ×öVC³ÌÐò/////////µÄʱºòÒªÓõ½µÄ¡£ [Guid("298D881C-E2A3-4638-B872-73EADE25511C" ] public interface AddComInterface { [DispId(1)] int iadd(int a, int b); [DispId(2)] float ladd(float a, float b); } [Guid("2C5B7580-4038-4d90-BABD-8B83FCE5A467" ][ClassInterface(ClassInterfaceType.None)] public class AddComService : AddComInterface { public AddComService() { } public int iadd(int a, int b) { int c = 0; c = a + b; return c; } public float ladd(float a, float b) { float c = 0; c = a + b; return c; } } } £¨2£©VC6.0±àдµ÷ÓóÌÐò ʹÓÃVC6.0±àд½¨Á¢MFCÓ¦ÓóÌÐòUseCom£¬ÏîÄ¿ÀàÐÍΪMFC AppWizard(exe) ÔÚstdafx.hÌí¼Ó£º #import "AddCom.tlb" using namespace AddCom; ³ÌÐò´úÂ룺 void CUseComDlg::OnButtonUse() { // TODO: Add your control notification handler code here int dresult; float fresult; CString strResult; CoInitialize(NULL);//NULL»»³É0Ò²¿ÉÒÔ AddCom::AddComInterfacePtr p_Add(__uuidof(AddComService)); dresult = p_Add->iadd(1,2); fresult = p_Add->fadd(1.2,2.3); strResult.Format("int:%d \nfloat:%f",dresult,fresult); MessageBox(strResult,"¼ÆËã½á¹û",MB_OK); CoUninitialize(); } 3¡¢ÔÚVC6.0ÖбàдCOM×é¼þ£¬Ê¹ÓÃVS2005 C#µ÷Óà £¨1£©VC6.0±àдCOM ʹÓÃVC6.0½¨Á¢COM×é¼þ£¬¹¤³ÌÀàÐÍ£ºATL COM AppWizard ³ÌÐò´úÂ룺 ½Ó¿Ú£º interface IAdd : IDispatch { [id(1), helpstring("method iadd" ] HRESULT iadd([in]int a, [in]int b, [out]int * c);[id(2), helpstring("method fadd" ] HRESULT fadd([in]float a, [in]float b, [out]float * c);[id(3), helpstring("method isub" ] HRESULT isub([in]int a, [in]int b, [out]int * c);}; ʵÏÖ£º STDMETHODIMP CAdd::iadd(int a, int b, int *c) { // TODO: Add your implementation code here *c = a + b; return S_OK; } STDMETHODIMP CAdd::fadd(float a, float b, float *c) { // TODO: Add your implementation code here *c = a + b; return S_OK; } STDMETHODIMP CAdd::isub(int a, int b, int *c) { // TODO: Add your implementation code here *c = a - b; return S_OK; } £¨2£©VS2005ʹÓÃC#±àдµ÷ÓóÌÐò£¨ÍøÕ¾³ÌÐò£© ʹÓÃVS2005½¨Á¢ÍøÕ¾UseCom ÅäÖãºÔÚ½â¾ö·½°¸×ÊÔ´¹ÜÀíÆ÷ÖеÄÖ÷Ŀ¼µã»÷ÓÒ¼ü£¬Ñ¡ÔñÌí¼ÓÒýÓã¬Ñ¡ÔñCOM£¬Ìí¼Ó¸Õ¸Õ½¨Á¢µÄAddCom 1.0 Type Library ÔÚ³ÌÐòÖÐÒªusing±àдµÄCOM×é¼þ£ºusing ADDCOMLib; ![]() ͼÈý ÒýÓÃCOM ³ÌÐò´úÂ룺 using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using ADDCOMLib; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void ButtonCom_Click(object sender, EventArgs e) { Add add = new Add(); int iresult; float fresult; int sresult; add.IAdd(10, 20, out iresult); add.fadd((float)1.2,(float)2.3, out fresult); add.isub(100, 10, out sresult); TextBoxResult.Text = iresult.ToString(); TextBoxRe2.Text = fresult.ToString(); TextBoxRe3.Text = sresult.ToString(); } } 4¡¢ÔÚVC6.0ÖбàдCOM×é¼þ£¬Ê¹ÓÃVC6.0µ÷Óà £¨1£©VC6.0±àдCOM×é¼þ ʹÓÃVC6.0½¨Á¢COM×é¼þ£¬¹¤³ÌÀàÐÍ£ºATL COM AppWizard ³ÌÐò´úÂ룺 ½Ó¿Ú£º interface IAdd : IDispatch { [id(1), helpstring("method iadd" ] HRESULT iadd([in]int a, [in]int b, [out]int * c);[id(2), helpstring("method fadd" ] HRESULT fadd([in]float a, [in]float b, [out]float * c);[id(3), helpstring("method isub" ] HRESULT isub([in]int a, [in]int b, [out]int * c);}; ʵÏÖ£º STDMETHODIMP CAdd::iadd(int a, int b, int *c) { // TODO: Add your implementation code here *c = a + b; return S_OK; } STDMETHODIMP CAdd::fadd(float a, float b, float *c) { // TODO: Add your implementation code here *c = a + b; return S_OK; } STDMETHODIMP CAdd::isub(int a, int b, int *c) { // TODO: Add your implementation code here *c = a - b; return S_OK; } £¨2£©VC6.0±àдµ÷ÓóÌÐò ʹÓÃVC6.0½¨Á¢MFCÓ¦ÓóÌÐòUseCOM£¬µ÷Óøոս¨Á¢µÄCOM×é¼þ ½«ÉÏÃæ³ÌÐòAddComÉú³ÉµÄAddCom.dll·ÅÈë±¾³ÌÐòµÄ¹¤³ÌĿ¼ºÍ³ÌÐòÉú³ÉĿ¼ÖÐ ÔÚStdAfx.hÖмÓÈ룺 #import "AddCom.dll" no_namespace ³ÌÐò´úÂ룺 void CUseComDlg::OnBUTTONUse() { // TODO: Add your control notification handler code here CString strResult; CoInitialize(NULL);//NULL»»³É0Ò²¿ÉÒÔ IAddPtr m_add = NULL; HRESULT hr = S_OK; hr = m_add.CreateInstance(__uuidof(Add)); int d_a = 90; int d_b = 10; int d_c; int d_d; float f_a = 1; float f_b = 2; float f_c; m_add->_IAdd(d_a,d_b,&d_c); m_add->fadd(f_a,f_b,&f_c); m_add->isub(d_a,d_b,&d_d); strResult.Format("·µ»Ø½á¹û£º%d; %f; %d",d_c,f_c,d_d); MessageBox(strResult,"½á¹û",MB_OK); m_add.Release(); m_add = NULL; CoUninitialize(); } ÎÄÕ³ö´¦:http://www.vckbase.com/document/viewdoc/?id=1852 |
2Â¥2010-06-09 08:54:50













»Ø¸´´ËÂ¥
;
