2012-02-09 22 views
0

私はC++ Builderの大きなプロジェクトを持っています。このプロジェクトは、のインポートタイプライブラリを使用したようです。あなたはこのファイルは非常に長い時間前にgenereatedた:)見ることができるようにそれではこのインポートされたタイプライブラリが機能しなくなった

// ************************************************************************ // 
// WARNING                  
// -------                  
// The types declared in this file were generated from data read from a  
// Type Library. If this type library is explicitly or indirectly (via   
// another type library referring to this type library) re-imported, or the 
// 'Refresh' command of the Type Library Editor activated while editing the 
// Type Library, the contents of this file will be regenerated and all   
// manual modifications will be lost.           
// ************************************************************************ // 

// C++ TLBWRTR : $Revision: 1.134.1.41 $ 
// File generated on 2003-10-27 12:57:05 from Type Library described below. 

// ************************************************************************ // 
// Type Lib: C:\WINNT\system32\MQOA.DLL (1) 
// IID\LCID: {D7D6E071-DCCD-11D0-AA4B-0060970DEBAE}\0 
// Helpfile: 
// DepndLst: 
// (1) v2.0 stdole, (C:\WINNT\System32\stdole2.tlb) 
// (2) v4.0 StdVCL, (C:\WINNT\System32\STDVCL40.DLL) 
// ************************************************************************ // 
#ifndef __MSMQ_OCX_h__ 
#define __MSMQ_OCX_h__ 

#pragma option push -b -w-inl 

#include <utilcls.h> 
#if !defined(__UTILCLS_H_VERSION) || (__UTILCLS_H_VERSION < 0x0500) 
// 
// The code generated by the TLIBIMP utility or the Import|TypeLibrary 
// and Import|ActiveX feature of C++Builder rely on specific versions of 
// the header file UTILCLS.H found in the INCLUDE\VCL directory. If an 
// older version of the file is detected, you probably need an update/patch. 
// 
#error "This file requires a newer version of the header UTILCLS.H" \ 
     "You need to apply an update/patch to your copy of C++Builder" 
#endif 
#include <olectl.h> 
#include <ocidl.h> 
#if !defined(_NO_VCL) 
#include <stdvcl.hpp> 
#endif // _NO_VCL 
#include <ocxproxy.h> 

... 

のようなヘッダを持つファイルです。私はこのプロジェクトをC++ Builder 2010の上にのWindows 7の64ビットのでビルドすることができました。しかし、XE2をインストールして、STRICT NO_STRICTの代わりに既定値STRICTの代わりに小さな問題を修正しようとすると、全く別の問題が発生します。上記のファイル、同じ方法で生成されたその他のファイルは、もはや意図したとおりに動作しません。

は、私のようなエラーが出

[BCC32エラー] MSMQ_OCX.h(66):E2090修飾子 'Oleserverは' MQOA探し クラスまたは名前空間名

ではありません。 DLLそれはソートの何も使用していないと主張する存在するようです。プロジェクトをXE2にアップデートするときに、このような問題を回避する方法については、誰でも指摘していますか?このプロジェクトは以前からアップグレードされていましたが、C++ Builder 2010にアップグレードされました。しかし、私はVisual Studioの人ですから、多くのEmbarcaderoのものは新しい領域です。

+2

以前の.hファイルを再利用する代わりに、TypeLibraryをXE2に再インポートしようとしましたか? –

+0

どうすればいいですか?この場合、** C:\ WINNT \ system32 \ MQOA.DLL **のように、私が使用したファイルを調べると思っていました。しかし、このファイルはWindows 7には存在しません。 – inquam

+0

ファイルがインストールされていない場合、プロジェクトが正常にコンパイルされた場合でも、実行時にTypeLibrary/Objectを使用するアプリはどのようになると思いますか? –

答えて

1

Remy Lebeauさんが提案したように、が必要なタイプライブラリを削除し、古いタイプライブラリを削除しました。が終了しました。私の場合、メッセージキューのMicrosoftのライブラリでした。

同様のエラーメッセージを出すいくつかの問題は、コンパイラがちょうど混乱している可能性があることに注意してください。 NO_STRICTを定義しないでコンパイルを試してください。

関連する問題