aris-wiz の回答履歴

全480件中121~140件表示
  • directxのspriteの描画について

    VisualStudioによりc++とdirectxを使って3Dオブジェクト(xファイルなど)とspriteによるテクスチャの描画をしたいのです。3Dの格闘ゲームのようにカメラが動いているのに、ライフバーが固定されているようなものを作りたいのです。 3Dオブジェクトはプロジェクション変換とビューポート変換をして描画し、spriteのテクスチャは画面の左上を座標(0,0)として描画したいのですが、どのように実装すればいいのでしょうか? 現時点ではspriteを描画する前にプロジェクション変換とビューポート変換のときに使うポインタを初期化してパイプラインに送ればいいと考えやったのですが、3Dオブジェクトは描画されているのですがspriteはうまくいきませんでした。

    • meziti
    • 回答数2
  • ファイルの入力がうまくできません。

    ファイルの読み込みがうまくできません。 char buffer[起こりうる最大バイト数]; fread(buffer, 最大バイト数を超えないデータ量 で,うまく読み込めず、 buffer = (char *)malloc(必要なだけの領域) fread(buffer, 最大バイト数を超えないデータ量 だとうまくいきます。 最大バイト数は27*181と小さく、またbufferをstaticにしても 関数の外部においてもバグります。 いったいなにがおかしいのか、こころあたりあるかた教えてください。 ちなみに、fread直後ですでに読み込みデータがおかしくなっています 読み込みデータはバイナリでfopen("filename","br");でよんでます

  • directxのspriteの描画について

    VisualStudioによりc++とdirectxを使って3Dオブジェクト(xファイルなど)とspriteによるテクスチャの描画をしたいのです。3Dの格闘ゲームのようにカメラが動いているのに、ライフバーが固定されているようなものを作りたいのです。 3Dオブジェクトはプロジェクション変換とビューポート変換をして描画し、spriteのテクスチャは画面の左上を座標(0,0)として描画したいのですが、どのように実装すればいいのでしょうか? 現時点ではspriteを描画する前にプロジェクション変換とビューポート変換のときに使うポインタを初期化してパイプラインに送ればいいと考えやったのですが、3Dオブジェクトは描画されているのですがspriteはうまくいきませんでした。

    • meziti
    • 回答数2
  • Windowsを2つインストール

    今のPCにはWindowsVistaSP1がCドライブインストールされています。 最近インターネットでWindows7betaが出回っているようなので、Dドライブにインストールしようかな~、 とか思っています。 で、インストールした後、 PC起動時にデュアルブートの画面がでて、 OSを選ぶと思うのですが、 それ出させない方法はありますか? つまり、通常は、PCを起動したら、 いままでどうりそのままWindowsVistaSP1を起動したいのです。 Windows7betaは、例えば、 起動Diskみたいなのを入れておいてから、PCを起動した時のみ、 起動できるようにしたいのです。 こういうことはできるんですか? (別に起動Diskの方法以外でも構いません) あとWindowsVistaをインストールしているPCにWindowsXPをインストールすると、ブートファイルの関係で、 WindowsVistaが起動できなくなるのは知っています。なのでちょっと作業をしないとVistaが起動できないと思うのですが。 Windows7betaはこのあたりは心配無いのでしょうか? いろいろ質問してすみません。

  • 構造体のメンバ初期化について

    構造体のメンバを初期化したいのですが、 メンバ数が多いので1個ずつ初期化するのは面倒です。 そのため、一度に初期化する方法を探していたのですが、 memsetやZeroMemoryなどで可能だということが解りました。 しかし、パディング等の問題を含めて この関数を使用しても問題ないのでしょうか? 以下に例を挙げます。 typedef struct SAMPLE {  char a;  int b;  int c;  float d;  SAMPLE(){   ZeroMemory( this, sizeof(Sample) );  } } Sample; 構造体Sampleは32bitマシンでは 一見13byteに見えますが、パディングが入るので、 実際にはsizeof(Sample)は16byteと表示されます。 また、構造体には自動的に初期化と解放するための、 コンストラクタ・デストラクタのみがあり、 関数や仮想関数などの実装はありません。 この方法の安全性について、 ご存知の方がいらっしゃればアドバイスいただけると助かります。 よろしくおねがいします

  • インストーラと突然の電源断

    VisualStudio2008のVC++でインストーラを作成しています。 ターゲットはXP/Vistaです。 CopyFile()でファイルをコピーして、ショートカットを作成し、レジストリを登録した直後ぐらいで電源断を発生させると、CopyFile()でコピーしたファイルで1Mを越すものがほとんど壊れています。またショートカットも無かったり、あってもショートカットの中身が壊れていたり(ショートカット先無し、作業フォルダも空)、レジストリもキーだけあって中身が無かったりします。 普通、これらの事象についてどうやって解決するのでしょうか? ちなみにCreateFileでキャッシュ無し指定をして書き込んでも、いきなり電源断するとファイルが壊れてしまっていました。 ノートPCだとあまり見られないのですが、デスクトップPCで顕著に見られます。 よろしくお願いします。

  • DLLからEXEのクラスを呼び出すとリンクエラーになります。

    私は昔VC++6.0を少し触っただけの初心者に近い状態のレベルです。 作っているプログラムは、1つのソリューションの中にEXE実行するプロジェクトとDLLを作るプロジェクトの2つプロジェクトを含んでいます。 DLL側からEXEのクラスを使用すると、ビルド時にリンクエラーになります。LNK2019でシンボルのエラーなのですが、なぜそうなのか?がわかりません。 ご教授いただけますでしょうか。 <ソリューションの構成> A ソリューション  Aプロジェクト(.exe) AAクラス ERR親クラス ← ERR子クラスの継承 Bプロジェクト(.dll) 静的リンク(.defファイル使用) BAクラス BAクラスの実装 {  try {   throw ERR子クラス } catch(ERR子クラス) { } } やりたいことは、BプロジェクトにあるERR子クラスをBプロジェクトと Cプロジェクトの両方で使用したいです。 ビルド時に上のBAクラスのERR子クラスのところでコンパイルはとおるのですが、リンクエラーになります。エラーコードはLNK2019です。 何が足りないのでしょうか? dllからexeのクラスを呼び出すようなことはできないのでしょうか? このやり方自体に問題があり、他の方法にする方がいいですか? ERR親クラス、ERR子クラスともヘッダー定義があり。 CAクラスのヘッダー定義内でinclude宣言しています。 versionはVC2003++です。 よろしくお願いします。

  • WinXPでPowerUsersか否かを調べる方法

    WindowsAPIで、IsUserAnAdminというのがあり、これで、 ユーザーがAdministratorsかどうかがわかりますが PowerUsersか否かをプログラムが知るには 何か方法がありますでしょうか?

  • CD-ROMからexeを起動するとファイルを読み込まない

    自作したゲームのexeファイルを起動したところ、ファイルを読み込んでくれないので困っています。 自分は、 if(NULL == (fp = fopen("ファイル名","r+t")))  としているのですが、普通にWindows上でexeを起動すると普通に読み込んでくれるのですが、何故かCD-ROMに焼いてから、CD-ROMからexeファイルを起動させるとファイルを読み込んでくれません。 他の方法でfopen("../フォルダ名/ファイル名")にしても駄目でした。  なにか別の方法がないのでしょうか? 教えていただけると助かります。 ちなみに開発環境は、VS.NET2003 C++です。

    • dotneer
    • 回答数3
  • アドレスの重複

    Windowsプログラミングをしていて、「できた!」と思ってビルドしたら、思い通りの動作をしないので、デバッグして調べたら、TCHAR型の1次元配列同士で、アドレスが重複していて、片方の配列の方を書き換えると、同時にもう片方も書き換えられてしまうという困ったことになっていたのですが、こういう時って、どうすれば(簡単に)回避できますか? お願いします。

    • noname#77699
    • 回答数3
  • CD-ROMからexeを起動するとファイルを読み込まない

    自作したゲームのexeファイルを起動したところ、ファイルを読み込んでくれないので困っています。 自分は、 if(NULL == (fp = fopen("ファイル名","r+t")))  としているのですが、普通にWindows上でexeを起動すると普通に読み込んでくれるのですが、何故かCD-ROMに焼いてから、CD-ROMからexeファイルを起動させるとファイルを読み込んでくれません。 他の方法でfopen("../フォルダ名/ファイル名")にしても駄目でした。  なにか別の方法がないのでしょうか? 教えていただけると助かります。 ちなみに開発環境は、VS.NET2003 C++です。

    • dotneer
    • 回答数3
  • * の役割について

    windows プログラミングをVC 2003 で始めたばかりの初心者です。参考書を元にウィンドウプロシージャに変数を書いているときに、 char *szStr = "Windows program"; という文があったのですが、このszStrの前の * はいったいどうゆう役割をはたしているのでしょうか? それに影響されてかTextOut関数を使うときも TextOut{hdc, 10, 10, (LPCTSTR)szStr, (int)sizeof(szStr)}; となってszStr の前に(LPCTSTR)がついています。この(LPCTSTR)がついていない例文もあるのですが どうゆうときに必要でまたどうゆうときに不必要なのでしょうか? 説明に足りないところがあればまた足しますのでよろしくお願いします。

  • DWORDの警告

    double sleeptime=500; Sleep(sleeptime); というプログラムを書いたのですが、 「 warning C4244: '引数' : 'double' から 'DWORD' への変換です。データが失われる可能性があります。」 と警告が出てしまいます。  警告を消すにはどうすればいいのでしょうか?  よろしくお願いします。  

  • fopen関数

    いまいちfopen関数の使い方がわかりません。 FILE *fp; fp = fopen("test.txt","W"); fcose(fp); ですが、なぜここでポインタが出てくるんでしょうか? メモリ上に領域fpを作って、そこに関数のアドレスを格納している? と一応解釈していますがあっていますか?

  • DLL関数を使ったプログラム

     DLL関数を使ったプログラムを動かしたんですが、ERRORが解決できず 困っています。DLLを作成したのはいいのですが、それをLoadLibraryで読み込もうとしても指定したプロシージャが見つからないというエラーになるようです。使用している環境はVisual Studio.NET2003です。  以下はDLLのソースです。 // plug.c // #include <windows.h> #include <stdio.h> __declspec(dllexport) void CALLBACK TestFunc() {    printf("DLLのTestFunc()関数が実行されました。\n"); } これをビルドするとplug.dllとplug.expとplug.libが作成されました。  そしてこれを使用したプログラムが // stab.c // #include <windows.h> #include <stdio.h> typedef void (*TestFunc)(void); void main() {     HMODULE hModule;     DWORD error;     TestFunc funcPointer;     hModule = LoadLibrary(TEXT("plug"));     error = GetLastError();//error値が127     funcPointer = (TestFunc)GetProcAddress(hModule,TEXT("TestFunc"));     funcPointer();     FreeLibrary(hModule);     getchar(); } LoadLibrary関数を使用してアプリのメモリ空間にDLLを読み込もうとしているんですが、ここでハンドルが正確に渡されていないみたいなんです。どうしてこうなるのか分かりません。わかる方いらっしゃったらよろしくお願いします。

    • dotneer
    • 回答数17
  • DLL関数を使ったプログラム

     DLL関数を使ったプログラムを動かしたんですが、ERRORが解決できず 困っています。DLLを作成したのはいいのですが、それをLoadLibraryで読み込もうとしても指定したプロシージャが見つからないというエラーになるようです。使用している環境はVisual Studio.NET2003です。  以下はDLLのソースです。 // plug.c // #include <windows.h> #include <stdio.h> __declspec(dllexport) void CALLBACK TestFunc() {    printf("DLLのTestFunc()関数が実行されました。\n"); } これをビルドするとplug.dllとplug.expとplug.libが作成されました。  そしてこれを使用したプログラムが // stab.c // #include <windows.h> #include <stdio.h> typedef void (*TestFunc)(void); void main() {     HMODULE hModule;     DWORD error;     TestFunc funcPointer;     hModule = LoadLibrary(TEXT("plug"));     error = GetLastError();//error値が127     funcPointer = (TestFunc)GetProcAddress(hModule,TEXT("TestFunc"));     funcPointer();     FreeLibrary(hModule);     getchar(); } LoadLibrary関数を使用してアプリのメモリ空間にDLLを読み込もうとしているんですが、ここでハンドルが正確に渡されていないみたいなんです。どうしてこうなるのか分かりません。わかる方いらっしゃったらよろしくお願いします。

    • dotneer
    • 回答数17
  • DLL関数を使ったプログラム

     DLL関数を使ったプログラムを動かしたんですが、ERRORが解決できず 困っています。DLLを作成したのはいいのですが、それをLoadLibraryで読み込もうとしても指定したプロシージャが見つからないというエラーになるようです。使用している環境はVisual Studio.NET2003です。  以下はDLLのソースです。 // plug.c // #include <windows.h> #include <stdio.h> __declspec(dllexport) void CALLBACK TestFunc() {    printf("DLLのTestFunc()関数が実行されました。\n"); } これをビルドするとplug.dllとplug.expとplug.libが作成されました。  そしてこれを使用したプログラムが // stab.c // #include <windows.h> #include <stdio.h> typedef void (*TestFunc)(void); void main() {     HMODULE hModule;     DWORD error;     TestFunc funcPointer;     hModule = LoadLibrary(TEXT("plug"));     error = GetLastError();//error値が127     funcPointer = (TestFunc)GetProcAddress(hModule,TEXT("TestFunc"));     funcPointer();     FreeLibrary(hModule);     getchar(); } LoadLibrary関数を使用してアプリのメモリ空間にDLLを読み込もうとしているんですが、ここでハンドルが正確に渡されていないみたいなんです。どうしてこうなるのか分かりません。わかる方いらっしゃったらよろしくお願いします。

    • dotneer
    • 回答数17
  • DLL関数を使ったプログラム

     DLL関数を使ったプログラムを動かしたんですが、ERRORが解決できず 困っています。DLLを作成したのはいいのですが、それをLoadLibraryで読み込もうとしても指定したプロシージャが見つからないというエラーになるようです。使用している環境はVisual Studio.NET2003です。  以下はDLLのソースです。 // plug.c // #include <windows.h> #include <stdio.h> __declspec(dllexport) void CALLBACK TestFunc() {    printf("DLLのTestFunc()関数が実行されました。\n"); } これをビルドするとplug.dllとplug.expとplug.libが作成されました。  そしてこれを使用したプログラムが // stab.c // #include <windows.h> #include <stdio.h> typedef void (*TestFunc)(void); void main() {     HMODULE hModule;     DWORD error;     TestFunc funcPointer;     hModule = LoadLibrary(TEXT("plug"));     error = GetLastError();//error値が127     funcPointer = (TestFunc)GetProcAddress(hModule,TEXT("TestFunc"));     funcPointer();     FreeLibrary(hModule);     getchar(); } LoadLibrary関数を使用してアプリのメモリ空間にDLLを読み込もうとしているんですが、ここでハンドルが正確に渡されていないみたいなんです。どうしてこうなるのか分かりません。わかる方いらっしゃったらよろしくお願いします。

    • dotneer
    • 回答数17
  • DLL関数を使ったプログラム

     DLL関数を使ったプログラムを動かしたんですが、ERRORが解決できず 困っています。DLLを作成したのはいいのですが、それをLoadLibraryで読み込もうとしても指定したプロシージャが見つからないというエラーになるようです。使用している環境はVisual Studio.NET2003です。  以下はDLLのソースです。 // plug.c // #include <windows.h> #include <stdio.h> __declspec(dllexport) void CALLBACK TestFunc() {    printf("DLLのTestFunc()関数が実行されました。\n"); } これをビルドするとplug.dllとplug.expとplug.libが作成されました。  そしてこれを使用したプログラムが // stab.c // #include <windows.h> #include <stdio.h> typedef void (*TestFunc)(void); void main() {     HMODULE hModule;     DWORD error;     TestFunc funcPointer;     hModule = LoadLibrary(TEXT("plug"));     error = GetLastError();//error値が127     funcPointer = (TestFunc)GetProcAddress(hModule,TEXT("TestFunc"));     funcPointer();     FreeLibrary(hModule);     getchar(); } LoadLibrary関数を使用してアプリのメモリ空間にDLLを読み込もうとしているんですが、ここでハンドルが正確に渡されていないみたいなんです。どうしてこうなるのか分かりません。わかる方いらっしゃったらよろしくお願いします。

    • dotneer
    • 回答数17
  • ポインタの宣言

    ポインタを宣言するとメモリ上に、ポインタ変数を格納するための領域が確保されます。ポインタ=アドレスというのは大丈夫なのですが、 int *b のようにどうして、ポインタに型があるのでしょうか?単に変数のアドレスを表示するだけならば型はいらないと思うのですが。 またこのとき宣言された変数は *b ではなくて b であってますよね?