国产18禁黄网站免费观看,99爱在线精品免费观看,粉嫩metart人体欣赏,99久久99精品久久久久久,6080亚洲人久久精品

C++技巧從c++中調用c#的com組件

時間:2008-10-04 16:06:00   來源:無憂考網(wǎng)     [字體: ]
1、 首先創(chuàng)建一個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、 創(chuàng)建一個vc++的控制臺項目,將*.tlb文件拷貝到vc++工程目錄下
  7、 Vc++代碼如下:
  #include "stdafx.h"
  #import "Youtube.tlb"
  #include
  #include
  #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!