次のプログラムのMain.cppから関数呼び出しして、Movie.cppのプログラムを実行できるようにしたいのですが、Main.cppに何を記述して、Movie.cppをどう修正すればいいですか?Movie.cppは長いのでリンク先に載せます。
Main.cpp
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
}
Movie.cpp
http://1st.geocities.jp/movie_program/
コンパイルが通らない場合には、以下の3点を確認してみてください。
構成プロパティ > リンカ > 入力 > 追加する依存関係 に strmiids.libが入っているか。DirectXと思われるリンカのエラーが山のように出たらこれを疑ってください。
構成プロパティ > 全般 で MFCを利用するようになっているか?(共有DLL、staticどちらでも可)。MFCと思われるリンカのエラーが山のように出たらこれを疑ってください。
構成プロパティ > リンカ > システム > サブシステム が ConsoleでなくWindowsになっているか。「未解決の外部シンボル _main が _mainCRTStartup から参照されました」というエラーが出たら疑ってください。
No.5ベストアンサー
- 回答日時:
動作確認してみました。
私の書いたものではマルチバイト文字で動きました。UNICODEは詳しく調べていないのですがダメですね。と言う事でUNICODEは、この際放置しましょう。
マルチバイトでもダメならMovie.exeが拡張子vcprojファイルと同じ場所にないのでは?
「なにかうまく動きません」だけでは、こちらも原因が読めませんので、もう少し詳細な情報をください。動かすと何が起こるのでしょうか?
No.4
- 回答日時:
CreateProcess(NULL,(LPTSTR)"Movie.exe",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
NULL,NULL,&si,&pi);
の(LPTSTR)"Movie.exe"が強引な対象法で間違っています。構成プロパティの全体の文字セットがUNICODEになっているなら、
CreateProcess(NULL,TEXT("Movie.exe"),NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
NULL,NULL,&si,&pi);
と書かないと文字コードの違いで動きません。
この回答への補足
構成プロパティの全体の文字セットがUNICODEにしてしまうと色々と不都合が起きてしまいます。マルチバイト文字でやる方法はないでしょうか?
補足日時:2011/04/04 15:24No.3
- 回答日時:
あのままスレッドにする訳にもいかないので、別のexeファイルにしてCreateProcessで起動するのが正しいと思いますが。
「CreateProcess 関数」
http://msdn.microsoft.com/ja-jp/library/cc429066 …
この回答への補足
CreateProcess関数を使って次のようなプログラムを作ったのですが、うまく動きません。どこがおかしいのでしょうか?Movie.exeは先ほどプログラムの実行ファイルです。
#include <afxwin.h>
#include <dshow.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
ZeroMemory(&si,sizeof(si));
si.cb=sizeof(si);
CreateProcess(NULL,(LPTSTR)"Movie.exe",NULL,NULL,FALSE,NORMAL_PRIORITY_CLASS,
NULL,NULL,&si,&pi);
CloseHandle(pi.hThread);
WaitForSingleObject(pi.hProcess,INFINITE);
CloseHandle(pi.hProcess);
}
No.2
- 回答日時:
私の知っている方法だと空のプロジェクトを作って、プロジェクトのプロパティで構成プロパティの全般でMFCの使用を「共有DLLでMFCを使用」を選んでもらってですね。
プロジェクトのプロパティで構成プロパティのリンカのシステムでサブシステムで「Windows (/SUBSYSTEM:WINDOWS)」を選択。
最後に、プロジェクトのプロパティで構成プロパティのリンカの入力で「追加の依存ファイル」にstrmiids.libを追加で設定終了。
プロジェクト新しい項目の追加でコードでC++を選んでmain.cppと入力。
このmain.cppに内容をコピペしてください。
これでF5で動くはずです。
この回答への補足
回答ありがとうございます。しかし、私のやりたいこととは違います。その方法で動くことも確認済みです。私がやりたいことは、質問でも言いましたように、main.cppで関数呼び出しをしてMovie.cppのプログラムを実行できるようにしたいのです。つまり、関数呼び出し1つでMovie.cppのプログラムがいつでも起動できるようにしたいのです。
補足日時:2011/04/04 00:34お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パブリックシンボルとは?
-
外部シンボル" ~~"は未解決で...
-
外部依存関係について
-
エラーの意味が??
-
「外部シンボルが未解決」につ...
-
OpenCVでの画像サイズ取得につ...
-
クラスを使ったC++の関数を...
-
C言語でレジストリ取得「未解決...
-
LNK2019: 未解決の外部シンボル...
-
VC++ .Net2003 SDKプログラムか...
-
未解決の外部シンボル
-
C++ の LNK2001エラー
-
python エラー
-
アプリケーションのDLLファイル...
-
エクセルのエラーメッセージ「4...
-
<unistd.h>をVisualStudioでつ...
-
ILSpyで、デコンパイルできない。
-
<math.h>があるのにsqrtが・...
-
CMakeでfortranをコンパイルしたい
-
Excelのエラーで困ってます。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部依存関係について
-
教えてgooについて
-
外部シンボル" ~~"は未解決で...
-
error LNK2001について
-
LNK2019: 外部シンボル どのよ...
-
C言語のエラー LNK1120: 外部参照
-
C++でのエラー LNK2001
-
外部シンボルの未解決のエラー
-
wsprintfのエラーについて
-
このプログラムを動かしたいの...
-
パブリックシンボルとは?
-
未解決の外部シンボル
-
外部シンボル未解決 LNK2001
-
Microsoft visual C++ 2010 Exp...
-
LNK2001(Pro*c)
-
外部シンボルについて
-
DLL呼び出しAPのリンクエラーに...
-
C++ Builderでユニットの追加
-
C++/CLIでfstream(.NET 3.5)
-
libdecodeqrをVC6.0のダイアロ...
おすすめ情報