「C言語/C++/atltest」の編集履歴(バックアップ)一覧に戻る

C言語/C++/atltest - (2012/09/21 (金) 23:15:30) のソース

|開発環境|Microsoft Visual C++ 2010 Express (SP1)|
|実行環境|Microsoft Windows XP Home Edition (SP3)|
|プロジェクトの種類|Win32 コンソール アプリケーション|
|プロジェクト名|atltest|
|アプリケーションの種類|コンソール アプリケーション|
|追加のオプション|空のプロジェクト|

 atltest.obj : warning LNK4254: セクション 'ATL' (50000040) は '.rdata' (40000040)
 に異なる属性を伴ってマージされています

|IMAGE_SCN_CNT_INITIALIZED_DATA|0x00000040|セクションに初期化されたデータが含まれています。|
|IMAGE_SCN_MEM_SHARED|0x10000000|セクションをメモリ中で共有できます。|
|IMAGE_SCN_MEM_READ|0x40000000|セクションを読むことができます。|

共有できるというフラグが取れただけで、あまり影響がないのかもしれない。

参考
-[[COMを使う(超簡単例:VCで実行)>http://www.dinop.com/vc/com004.html]]
-[[EXEファイルの内部構造(セクション)>http://codezine.jp/article/detail/413]]

atltest.cpp
#highlight(cpp){{
/*
ATLディレクトリの追加
構成プロパティ/VC++ ディレクトリ
・インクルード ディレクトリ:C:\WinDDK\7600.16385.1\inc\atl71
・ライブラリ ディレクトリ:C:\WinDDK\7600.16385.1\lib\ATL\i386

構成プロパティ/リンカー/コマンド ライン
・追加オプション:/ignore:4254
*/
#include <atlbase.h>

#import "wmp.dll" high_method_prefix("M") named_guids

using namespace WMPLib;

int main()
{
	BSTR bstrURL = L"C:\\tmp\\hoge.mp3";
	HRESULT hr;

	hr = CoInitialize(NULL);

	CComPtr<IWMPPlayer4> player;
	hr = player.CoCreateInstance(CLSID_WindowsMediaPlayer);
	hr = player->MopenPlayer(bstrURL);
	player = NULL;

	CoUninitialize();
	return 0;
}
}}