タイプライブラリの#importをヘッダーに記述して、複数オブジェクトで使用する
タイプライブラリをヘッダーファイルに#importで宣言して、そのヘッダーを複数ファイルに#includeすると
コンパイル時に重複定義のエラーが大量に発生します。これを防ぐには、#pragma once をヘッダーに記述して
一度しか読み込まれないようにしなければなりません。
【サンプル】
[ImpDefined.h]
#pragma once
//Excelを操作するためのタイプライブラリを読みこむ(VC++ 2003.NetでのExcel2002用)
#import "C:\Program Files\Common Files\Microsoft Shared\Office10\MSO.DLL" no_namespace rename("DocumentProperties", "DocumentPropertiesXL") rename("RGB", "MSO_RGBXL")
#import "C:\Program Files\Common Files\Microsoft Shared\VBA\VBA6\Vbe6ext.olb" no_namespace
#import "C:\Program Files\Microsoft Office\Office10\EXCEL.EXE" rename("ReplaceText", "ReplaceTextXL") rename("CopyFile", "CopyFileXL") rename("DialogBox", "DialogBoxXL") rename("RGB", "RGBXL") rename("DocumentProperties", "DocumentPropertiesXL") exclude("IFont") exclude("IPicture") no_dual_interfaces
using namespace Excel;
[サンプル・ソース]
(注意)
このサンプルは、Visual C++ 2003.Net、Excel2002で作成されています。