• ベストアンサー

COleDropTarget使用時のエラー回避方法について

loadidentityの回答

  • ベストアンサー
回答No.1

#include <afxole.h>をインクルードしましょう。 それで解決しますよ。

TanakaShinya
質問者

お礼

どうもすみません。解決いたしました。 今までMFCのクラスは自動的に全てインクルードされるものだと思っていたのですが、そうではなかったんですね。 ありがとうございました。

関連するQ&A

  • ccコマンド時の0711-317エラー

    お世話になっております。 AIX上にてC言語のモジュールをコンパイルしようとしているのですが、下記のとおりエラーがでてしまい、コンパイルできません。 実行コマンド cc -o XXX XXX.c エラー ld: 0711-317 エラー: 未定義のシンボル: .YYYY ld: 0711-317 エラー: 未定義のシンボル: .ZZZZ ld: 0711-345 -bloadmap または -bnoquiet オプションを使用して、詳細な情報を得てください。 YYYY関数とZZZZ関数が乗っているヘッダーファイルはXXX.cと同じディレクトリ上に存在しています。 (ヘッダーファイルは某製品についていたものです。) ヘッダーファイルとXXX.cモジュールが同じディレクトリに存在すれば、 リンクの設定等不要とおもっているのですが、間違えているのでしょうか。 また、設定等が不足している場合、その不足している設定をご教示いただけないでしょうか。

  • 定義されているのにエラーになる

    閲覧ありがとうございます。 C言語のプログラムの話です。 ソースファイルaaa.cでstdio.hをincludeしています。 stdio.hには extern FILE _iob[_NIOBRW]; というのが定義されているにも関わらず、 コンパイルすると、 aaa.o:aaa.c:(.data+0x58): undefined reference to '_iob' というエラーが出ます。 aaa.cでは_iobに関する宣言はしていませんが、それを使うこともしていません。 ヘッダファイルでexternで宣言してるからかなと思い、ソースファイルにexternなしの宣言を書き足したら、コンパイルは通りました。 今回は元々既にあるプロジェクトの改修だったのですが、宣言を消したりしていません。 しかし、その部分は元々ヘッダファイルに宣言などしなくてもコンパイルが通ってました。 昔はヘッダファイルでexternで宣言してたらソースファイルではしなくてオッケーみたいな感じだったんですかね? 私自身、あまりよく分かってなくて文章もめちゃくちゃですみません。 不足している情報があればできる範囲でお伝えしますので、ご協力よろしくお願いいたします。

  • [C++/CLI] アンマネージクラスの中でマネージクラスを使用したい。

    イベント駆動型のライブラリを使用しているプログラムのC++/CLIへの移行で困っています。 イベントの基底クラスAがC++の構文で書かれているため、派生クラスBはclassで宣言するようにコンパイラからエラーが帰りました。 ですので、classと宣言すると今度はアンマネージクラスの中でマネージコードは使用不可能といわれました。 どうにかこの現象を回避する方法はありませんか? class A : ライブラリで宣言されているイベントハンドラ(変更不可能) ref class B : A{} と宣言するとref classは使えないとエラー class B : A{} と宣言するとマネージコードが使用できないとエラー

  • VC++ のコンパイルエラーについて

    現在、解説書に記載されているコードをVC++でコンパイルできるか試しながらC++を独習中です。エラーの原因と対応が分からず困っております。どなかたご教示よろしくお願いします。 日付を表示するプログラムで米国表示か英国表示にするか列挙型の宣言と静的メンバーをヘッダーファイルに記載し、フラッグの定義と初期化をするプログラムをコンパイルしました。 ---クラス定義(ファイル名:date.h)--- #include <iostream.h> class date{ ----------------------- enum Lang {USA, UK}; static Lang format; public: ----------------------- }; ---メンバー関数定義(ファイル名:date.cpp)--- #include <string.h> #include <ctype.h> #include <stdlib.h> #include "date.h" ----------------------- Lang date::format = USA; ----------------------- ---------------------------------------- このファイルをコンパイルした結果、下記のエラーメッセージが表示されました。 エラー発生箇所は上記「Lang date::format = USA;」でした --------------------構成: date - Win32 Debug-------------------- コンパイル中... date.cpp date.cpp(17) : error C2501: 'Lang' : 識別名を宣言するのに、型が指定されていません。 date.cpp(17) : error C2239: 無効なトークン 'tag::id' が 'Lang' の宣言の後にあらわれました。 date.cpp(17) : error C2321: 構文エラー : 予期しない 'date::format' です。 cl.exe の実行エラー date.obj - エラー 3、警告 0 ----------------------------------------------------------------------------- エラーの原因と解決方法が分かりません。 よろしくお願いします。

  • BCB5 「コンパイラ内部エラー」の回避方法

    Borland C++ Builder5 を使っています。 WindowsXP Pro SP2の環境です。 ダイアログを表示するプログラムを作ろうとすると、コンパイルエラーになります。 この回避方法をお教え下さい。 親Form1のメニューを選択した時に OptionDlg->ShowModal(); で表示しようとしています。 OptionDlgは、「ファイル-新規-ダイアログ」で作ったダイアログです。 ダイアログのNameプロパティに「OptionDlg」と指定し、ソースはOptionDlgu.cppで 登録しました。 親Formで、ヘッダーファイルの追加もしています。 このような状態でコンパイルすると、 sysutils.hpp( ):F1004コンパイラ内部のエラー というメッセージが出て、コンパイル出来ません。 上記の方法で、ダイアログを表示するだけのサンプルプログラムを作ると、 正常にコンパイル出来ます。 初心者の私には、sysutils.hppが何を記述している部分なのか理解出来ていない のですが、今までにも同様の手順でダイアログを出すプログラムを作っていて、 何も問題なかったので、途方に暮れています。

  • 1 つ以上の複数回定義されているシンボルが見つかりました

    こんにちは。 VC++を使ってプログラムを作っているのですが、コンパイルは通るのですが、リンク時に以下のエラーメッセージが出ます。どなたか解決方法を教えてください。 (仮にプロジェクト名をPROJECTとします。) リンク中... PROJECT.obj : error LNK2005: "struct AA pAA" (?pAA@@3UAA@@A) はすでに PROJECT.obj で定義されています Debug/PROJECT.exe : fatal error LNK1169: 1 つ以上の複数回定義されているシンボルが見つかりました link.exe の実行エラー 開発ツール:VC++6.0 MFCを使用しています。 OS:Windows XP SP2 上記現象の発生した契機は、ヘッダファイル内で定義している構造体に構造体変数を加えたことによります。 【発生前】 ・ヘッダ内 struct AA { }; ・ソース内 AA pAA; 【発生後】 ・ヘッダ内 struct AA { }pAA; ・ソース (ソース内での構造体変数の宣言を削除) 以上で、どなたか心当たりのある方はご教授をお願いいたします。

  • クラスのメンバ関数を別ファイルで定義したときのバグ

    C++ においてヘッダファイルで宣言したクラスのメンバ関数を別のソースファイルで定義して、コンパイルするとうまくいきません。エラーは出ないのですが、同名の何もしない関数としてコンパイルされているようなのです。クラスのメンバ関数を宣言したのと同じヘッダに書くとちゃんとコンパイルされます。 どうしてそうなるのか、いまいち原因がわかりません。

  • include<wtsapi32.h>でエラーがでる

    .netを使ってWTSQurySessionInformationのAPIを使う C言語プログラムを作ろうとしています。 ライブラリーにwtsapi32.lib ヘッダーにwtsapi32.h が必要と書いてあったので ライブラリーをインポートし、ヘッダーにPSDKの最新のものをいれましたが、エラーがでます。 c:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\include\WtsApi32.h(109) : error C2061:構文エラー : 識別子 'LPWSTR といったものがたくさんエラーがでます、どうすれば 解決できるでしょうか。調べてもわからないため困っています。OSはXPを使ってます。

  • Solaris10でのPOSIX関数の使用方法は?

    お世話になります。 Solaris10(SPARC)にてSunStudio11を導入しています。 この環境下において、POSIX共有メモリ関数(shm_open)を使用したプログラムのコンパイルをしたいのですが、コンパイル時に暗黙の型宣言の警告メッセージとなってしまいます。プリプロセッサによるヘッダファイルの処理結果を見ると、shm_openの型宣言が読み込まれていないようです。(manページで指定されていたヘッダファイルは、インクルード済み) どのような点に問題があるのでしょうか?お気づきの方、ご意見ください。

  • HANDLEの宣言でのエラー

    現在C言語でプログラムを作成しています. シリアル通信を行うプログラムなのですが,エラーが出てしまい, ネットなどで検索してみたのですが,解決できませんでしたので,ご存知の方がいましたら,教えてください. エラーは以下のとおりです. [test.h] #ifndef INCLUDED_TEST_H #define INCLUDED_TEST_H HANDLE handle; HANDLE sirial(char ,char); void sirial_(HANDLE); #endif 上の用にヘッダファイルを作成し,グローバル変数の宣言・プロトタイプ宣言を行おうとすると型がHANDLEのところでエラーが出てしまいます. main関数と同じファイル内で宣言,定義した場合はエラーはでません. ヘッダファイルのように別ファイルに宣言するとエラーとなってしまうのです. 環境は Windows XP SP2 visual studio .net です. よろしくお願いします.