2006年6月12日 (月)

LPTSTR⇔CString⇔char *

前回の記事のMFCサンプルプログラムから今回の解決を見るまで
実際のところ2週間の時間が経っている。
ひたすら原因の究明と解決策の模索をしていた。

前回のエラーの原因は結局のところ
LPTSTR(LPCTSTR)⇔CString⇔char *
の相互キャストがうまくいかないことが原因だった。

大量にこのエラーが出ていて組み合わせも一通りではなかったため
原因究明に時間がかかった(>_<)
問題はUnicode文字セットを使用するというオプションを有効にしていたこと
これを有効にしていると
LPTSTR⇔char *が成立せず LPTSTR ⇔WCHARとなる。
Unicodeサポートではなくてマルチバイト文字セットを使用するとしたところ
キャストの関係が解決してビルドが通るようになった。

Encode_c








 

| | コメント (0) | トラックバック (0)

MFCサンプルプログラムをビルド

QuickTime APIのWindowsプログラムサンプル(MFC)をとりあえずVisual Stadioで
ビルドすることに成功

http://developer.apple.com/samplecode/QuickTime/idxQuickTimeforWindows-date.html
↑のページのMFC.win

さすがにそのままではビルドできなかったが
前出の QuickTime SDK の ライブラリとインクルードファイルを設定したところ
あっさりビルドできた。

http://bellks-tec.cocolog-nifty.com/blog/2006/05/visual_c__f215.html
http://bellks-tec.cocolog-nifty.com/blog/2006/05/visual_c__f962.html

MFCのDoccument Viewの仕組みは基本的にこのサンプルを参考にすればよいから
これができたらとんとん拍子で開発が進むであろう・・・と思っていたが
サンプルそのままコピーして使おうが何しようがビルドできない(>_<)
型のキャストができないらしい。。。

| | コメント (0) | トラックバック (1)

2006年5月22日 (月)

Visual C++ でスタティックライブラリを使う②

http://bellks-tec.cocolog-nifty.com/blog/2006/05/visual_c__f215.html

前筆よりかなりスマートな方法を発見。
こっちのほうが通常の方法でしょう

◆プロジェクトを選択>右クリック>プロパティ>リンカ>全般
この画面で追加のライブラリディレクトリにライブラリがあるフォルダを登録
Link_dir

◆さらに入力を選択
この画面で追加の依存ファイルに必要なライブラリ名を登録
Link_file

いろいろあったのですが、QuickTime APIを組み込んだソースを
コンパイルするのに

kernel32.lib
user32.lib
gdi32.lib
winspool.lib
comdlg32.lib

CVClient.lib
qtmlClient.lib
QTSClient.lib
QTVR.lib

を追加しました。

| | コメント (0) | トラックバック (1)

2006年5月20日 (土)

/clr:pure でコンパイルエラーが出る

5/22 指摘により題が適切でなくなったので改題しました。
        改題 『.net framework は使えない』⇒『/clr:pure でコンパイルエラーが出る』

QuickTime APIのヘッダファイルをincludeしてビルドしたところ
C3641 エラーが出ました。

/clr:pure で使用できるのは、__clrcall 呼び出し規約だけです。http://msdn2.microsoft.com/ja-jp/library/wfd44574(VS.80).aspx

 

QuickTime APIでは __cdecl を使っているためこれでエラーに…
.NET環境は使えない模様です
回避策もあるかもしれませんが、とりあえず現在は不明
MFCというものがあるようなので、そちらで開発することに…。

5/22    C/C++オプションで『/clr:pure』⇒『/clr』とすればよいことが判明しました。

Visual C++ 2005 ExpressEdition にはMFCがついていないので
Standerd Editionを手に入れました。

| | コメント (5) | トラックバック (0)

Visual C++ でスタティックライブラリを使う

5/22 この記事よりスマートな方法を発見したので加筆
   http://bellks-tec.cocolog-nifty.com/blog/2006/05/visual_c__37aa.html

 

ヘッダファイルにパスを通すだけではダメでスタティックライブラリを
プロジェクトに登録しなくてはなりません。
…自分で作ったスタティックライブラリを登録する方法は
検索ですぐに引っかかるのですが、
http://msdn2.microsoft.com/ja-jp/library/ms235627(VS.80,d=ide).aspx
APIなど他人が作ったライブラリを登録する方法がなかなか検索に引っかからない。
しかも同じようにはいかないようです。

試行錯誤して何とか方法を発見しました。
単純にプロジェクトに既存の項目として追加するだけ(・・;)
あたりまえすぎて記事にならないのかもしれません。

Add_item

な感じです。
今回は QuickTime SDK に含まれる
CVClient.lib
qtmlClient.lib(←これだけでよいとのうわさもあり?)
QTSClient.lib
QTVR.lib

を登録

| | コメント (0) | トラックバック (1)

Visual C++ ヘッダファイルをプロジェクトで使えるように

自分の環境は【Visual C++ 2005 Express Edition】です。
QuickTime API を利用するにあたって ヘッダファイルのパスをプロジェクトに登録しなくてはいけません。

QuickTime APIで使用するヘッダファイルは
QuickTime SDK(全記事参照)に含まれています。

◆ソリューションエクスプローラで対象のプロジェクトを選択

Select_project

◆右クリック⇒プロパティ もしくは ツールバーのプロジェクト⇒プロパティでプロパティを表示

Select_prop

◆構成プロパティ⇒C/C++⇒全般で表示されるフォーム、
追加のインクルードディレクトリにQuickTime SDKインストールディレクトリ/CIncludesを登録

Edit_prop

以上です。

| | コメント (0) | トラックバック (0)

必要なファイルをそろえる

とりあえず開発に必要なものをそろえてみました。
余分なものもかなりGETしましたが、今必要だなと思うのはこんなとこ

◆QuickTime SDK
http://developer.apple.com/quicktime/download/

今回は…というか自分が対照にする環境はWindowsなのでWindows

◆QuickTime For Windows (Windows開発のガイド)
http://developer.apple.com/documentation/QuickTime/QuickTimeforWindows-date.html

◆API Reference
http://developer.apple.com/referencelibrary/API_Fundamentals/QuickTime-api-date.html

| | コメント (0) | トラックバック (0)

Visual C++ で QuickTime API を 使いたい奮闘記

QuickTime API をどうしても触りたい、AxctiveX/COMじゃないほうでね
どうしても細かい動作が必要なんです。
C++自体も勉強中で無謀かもしれませんが、、、
これが目的でC++勉強しているのでそろそろ取り組んでもよいかな??
と思いチャレンジ開始です。

すでに何箇所か躓いていますが、詰まった項目ごとに記事を立てて
Memoとして後で見返す時役に立つ記事にしていきます。

参考、主なガイドラインはココ
http://developer.apple.com/referencelibrary/GettingStarted/GS_QuickTime/index.html

| | コメント (0) | トラックバック (0)