開發環境VS2005
1、 首先建立一個c#的類庫項目。
2、 将AssemblyInfo.cs檔案中的[assembly: ComVisible(false)]改為[assembly: ComVisible(true)],或者在項目屬性中“應用程式”構選上“使程式集com可見”複選框。
3、 在項目屬性中”生成”構選上”為com interop注冊”複選框。
4、 參考以下代碼及MSDN中COM 類示例(C# 程式設計指南):
using
System
;using
System.Collections.Generic
;using
System.Text
;using
System.Runtime.InteropServices
;namespace
Youtube
{ [Guid
("FA1BEAD8-D5E2-4a70-ACDF-0A7FB4DA17FD"
)]public
interface
IYoutubeService
{void
UploadFile
(); } [Guid
("2BD4711C-CAC0-4df5-B167-447FCD00D55C"
),ClassInterface
(ClassInterfaceType.AutoDispatch
)]public
class
YoutubeService
:IYoutubeService
{public
void
UploadFile
() {Console.WriteLine
("My Com Test!"
); } } }5、 編譯,這時候會生成*.dll檔案和*.tlb檔案
6、 建立一個vc++的控制台項目,将*.tlb檔案拷貝到vc++工程目錄下
7、 Vc++代碼如下:
#include
"stdafx.h"
#import
"Youtube.tlb"
#include
<stdio.h>
#include
<comutil.h>
#pragma
comment(lib,"comsuppw.lib")
using
namespace
Youtube;
int
_tmain(int
argc, _TCHAR* argv[])
{
CoInitialize(NULL);
try
{IYoutubeServicePtr
service( __uuidof( YoutubeService
) );service->UploadFile();
}catch
(const
_com_error& e)
{ }CoUninitialize();
return
0;}
8、編譯程式,并把之前的*.dll檔案拷貝到和生成exe一起,運作程式則測試ok!