検索結果 88 件

by lriki
3年前
フォーラム: C言語何でも質問掲示板
トピック: classのDLLに動的リンクするとき、直接newキーワードを使うにはどうしたらいいでしょうか
返信数: 1
閲覧数: 556

Re: classのDLLに動的リンクするとき、直接newキーワードを使うにはどうしたらいいでしょうか

new が使えないとは具体的にどういう状況ですか?(シンボル未定義でリンクエラーが出ている?) 普通はクラス自体をエクスポートすることで使えるようになるはずです。 https://msdn.microsoft.com/ja-jp/library/a90k134d.aspx あと、CreateInstance()を使う方法自体は間違いではありません。 COMのように互換性の向上や実装の隠蔽のために使うこともあります。 ただ、2つ目のコードのようにDLLの中でnewしたオブジェクトをexe側でdeleteするのは厳禁です。 特にexeとdllを別のコンパイラでビルドした場合など、new と del...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: 3Dシューティングゲームの機体の回転がうまく行きません
返信数: 5
閲覧数: 920

Re: 3Dシューティングゲームの機体の回転がうまく行きません

中天を向くほどおかしな動きをする感じでしょうか?
XYZ各軸の回転を分けているあたり、すごくジンバルロックしそうに見えます。

「回転させる値を変更する所」では各軸の角度を保持するのではなく、
直接クォータニオンを回転させるべきかなと思います。

また、クォータニオンが正しく使えていれば「360度以上回転したら0度に戻す」処理は不要なはずです。

↓DXライブラリですが、前に私が書いた記事です。ご参考までに。
http://lriki.hatenablog.com/entry/2015/01/31/210508
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9でpmx形式のモデルを表示させたい。
返信数: 3
閲覧数: 2034

Re: DirectX9でpmx形式のモデルを表示させたい。

動いてるもののソースコードを参考にするのが近道かなと思います。 ・DXライブラリのソースコード http://homepage2.nifty.com/natupaji/DxLib/dxdload.html ・MikuMikuFlex https://mmflex.codeplex.com/ ・MikuMikuDance PMX/VMD Viewer https://github.com/sn0w75/MMP ・拙作 https://github.com/lriki/Lumino/blob/master/src/Modeling/PMXLoader.cpp 大体は DirectX や OpenG...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: NanoVGのビルドがうまくいかない
返信数: 6
閲覧数: 1603

Re: NanoVGのビルドがうまくいかない

GLEW も GLFW も用意していないのですか? NanoVG はこの2つが用意されている (glew.h と glfw3.h にインクルードパスが通っている) ことが前提です。 無ければ当然ビルドできません。 それぞれのビルド済みライブラリは以下から入手できます。(私は両方ソースコードからビルドしましたが) GLEW http://glew.sourceforge.net/ [Windows 32-bit and 64-bit] のリンクから GLFW http://www.glfw.org/download.html [Windows pre-compiled binaries] のリン...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: NanoVGのビルドがうまくいかない
返信数: 6
閲覧数: 1603

Re: NanoVGのビルドがうまくいかない

GitHub の最新ソースで、特に問題なくビルドできました。Win7 64bit VisualStudio2013 です。
(premake4 が vs2013 非対応らしいので、vs2012 で作ったプロジェクトを vs2013 で開いて変換しました)

kumapon さんのところで出ているエラーは、GLint 等の OpenGL の基本的な型が未定義であることが原因です。
OpenGL を前提としている NanoVG で、これは本来あり得ないエラーです。
正常な glew.h と glfw3.h をインクルードできているか確認してみてください。
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: x64はx86と競合~というエラー
返信数: 1
閲覧数: 1153

Re: x64はx86と競合~というエラー

リンクしようとしているOpenCVのバイナリがx64になっているのではないでしょうか?

あと、ソリューションプラットフォームが Win32 になっていても
プロジェクトプロパティの方でリンカの設定が x64 になっているかもしれません。
「プロパティ」-「リンカー」-「詳細設定」-「対象コンピュータ」 を確認してみてください。
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: C++における異クラス間で共通して利用できるEnum型の設計について
返信数: 5
閲覧数: 1463

Re: C++における異クラス間で共通して利用できるEnum型の設計について

「1. 全ファイルに#includeさせる」の問題が解決するはずです。(それに伴って2.も解決するかもしれません)
原理理論は「インクルードガード」で検索していただければ情報が得られます。

C/C++ で組むときは .h ファイルの先頭に「#pragma once」と書く癖を付けておくと問題の予防になります。

C# とは構文こそ似ていますが、言語仕様まで一緒にしないように気を付けてください。
まして業務ということですので、「C++ 問題点」「C++ 落とし穴」などで検索してヒットする情報には一通り目を通すことをお勧めします。
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: C++における異クラス間で共通して利用できるEnum型の設計について
返信数: 5
閲覧数: 1463

Re: C++における異クラス間で共通して利用できるEnum型の設計について

張っていただいたソースコードは略多めとありますが、インクルードガードはされていますか?
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: C#のformについて
返信数: 1
閲覧数: 374

Re: C#のformについて

アプリ起動の直後でしょうか?
それでしたらこちら↓が参考になると思います。
http://dobon.net/vb/dotnet/form/showforminsequence.html
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: System.ArgumentException
返信数: 7
閲覧数: 2393

Re: System.ArgumentException

MSDN に「マルチスレッドでGDIオブジェクトを使うのは危険だよ」ってちゃんと書いてありますね。
「削除したときはなおさら何が起こるかわからない」ともあります。
https://msdn.microsoft.com/en-us/librar ... 85%29.aspx

根本的な話になりますが、描画を別スレッドに分けるのはやめた方がいいかもしれません。

ちなみに「gdi multithread」で検索すれば他にも情報が手に入ると思います。
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: C++のDLLをC#で使う
返信数: 6
閲覧数: 1638

Re: C++のDLLをC#で使う

Aloha_Callback_t の宣言はここに載せられませんか? doc ファイルの中には見当たりませんでした。(SDK をインストールしなければならないのでしょうか…)

とりあえず、似たような引数や振る舞いをする WinAPI を C# から呼び出す方法が参考になると思います。
例えば…
・SendMessage() … WPARAM/LPARAM を引数にとる
・EnumWindows() … コールバック関数を使う
・GetCurrentDirectory() … 文字列を取得する

「C# API名」や「C# PInvoke API名」で検索するといろいろヒットします。
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: VC++単色で塗りつぶしただけのコントロール(?)の配置について
返信数: 2
閲覧数: 692

Re: VC++単色で塗りつぶしただけのコントロール(?)の配置について

こんな感じでしょうか。 using namespace System; using namespace System::Windows::Forms; using namespace System::Drawing; int main() { Control^ control = gcnew Control(); control->Bounds = Rectangle(150, 200, 100, 50); control->BackColor = Color::Red; control->Anchor = AnchorStyles::Right | AnchorStyles::Bottom;...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。
返信数: 4
閲覧数: 1147

Re: VS2013の設定でC++テンプレートのスペース自動挿入を止めたい。

C++03 ではテンプレートの括弧がシフト演算子に誤認されるという仕様上の問題があります。 おそらくこれを防止するための整形でしょう。 http://dev.activebasic.com/egtra/2011/08/12/389/ VisualStudio2013 は C++11 に (完全ではありませんが) 対応しているため、 std::vector<std::vector<T>>; と書いてもコンパイルエラーになりません。 しかしこのコードは、例えば VisualStudio2008 でコンパイルすることはできません。 すこし気持ち悪い整形ですが、移植性を高めるという意味で従っておくのが...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: System.ArgumentException
返信数: 7
閲覧数: 2393

Re: System.ArgumentException

まだマズイですね。 1つ目。 Invoke() は delegate をメインスレッドに PostMessage() して、その delegate が処理されるまで待機します。 この PostMessage() をするとき、既に KeyDown メッセージがキューに入っていたらどうでしょうか。 UpDateRenderBackGround() より先に MyForm_KeyDown() が呼び出されるため、 life->mutex->WaitOne() でデッドロックしてしまします。 この状態は、デバッグ実行中に Enter キー等を押してアプリが固まった時、[デバッグ] > [すべて中断] ...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: System.ArgumentException
返信数: 7
閲覧数: 2393

Re: System.ArgumentException

メインスレッドで発生した例外ですね。別のスレッドではなく。 main.cpp を以下のように修正してみてください。 とりあえず例外を捕まえることができるはずです。 // 未処理例外をキャッチするイベントハンドラ static void Application_ThreadException(Object^ sender, ThreadExceptionEventArgs^ e) { // このへんでブレークポイントを張る Console::WriteLine(e->Exception); } [STAThreadAttribute] int main(array<String^>^ args)...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9におけるポイントスプライトについて
返信数: 1
閲覧数: 794

Re: DirectX9におけるポイントスプライトについて

2D でも描画できます。 というより、Direct3D とか名前が付いていることが紛らわしいのですが、 2D と 3D を区別しているのは結局のところ座標変換行列(プロジェクション行列)です。 極端な話、奥行きを無くしたプロジェクション行列を使用すれば、 3Dモデルを 2D として描画することもできます。 ポイントスプライトの使い方ですが、シェーダを使わないとなると確かに情報が少ないですね・・・。 ↓こちらが参考になるでしょうか。 http://marupeke296.com/cgi-bin/cbbs/cbbs.cgi?mode=al2&namber=612&rev=&no=0&P=R&KLO...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9における点描画について
返信数: 1
閲覧数: 761

Re: DirectX9における点描画について

こんばんは。 ウィンドウの中央に点を打ちたいのだと読み取りましたが、 ビュー・プロジェクション行列は設定されていますか? 設定されていなければ、DrawPrimitiveUP() は直接スクリーン座標空間に描画を行うことになります。 この座標空間は -1.0~1.0 の範囲です。 例えば、左上は(-1.0, 1.0)、中央は (0, 0) です。 その後、DirectX は Present() によってクライアント座標空間(0~WINDOW_WIDTH(HEIGHT))へ レンダリング結果の転送を行います。 まずは vertex.x と vertex.y を 0 にして試してみてください。 も...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: DXライブラリで使える数学(線形代数)ライブラリのご紹介
返信数: 0
閲覧数: 575

DXライブラリで使える数学(線形代数)ライブラリのご紹介

DXライブラリ用に3Dベクトルや行列、クォータニオン等の演算機能をまとめたライブラリを公開しましたので、ご紹介です。 元々はマルチプラットフォームのライブラリで、DXライブラリ専用ではありませんでしたが、 今回DXライブラリでもすぐに使えるように調整し、パッケージをまとめました。 ダウンロード(DXライブラリ用パッケージ) http://nnmy.sakura.ne.jp/log/eid4.html 「LuminoMath_1.0.0_DxLib_VC.zip」リンクからダウンロードできます。 紹介・使用例(Tips) http://lriki.hatenablog.com/entry/201...
by lriki
4年前
フォーラム: C言語何でも質問掲示板
トピック: DirectX9でMMEのエフェクトを使用したい
返信数: 2
閲覧数: 1920

Re: DirectX9でMMEのエフェクトを使用したい

こんばんは。 HLSLを触るのは初めてということなので少し勘違いされているかもしれません。 DirectX9 であればシェーダのインターフェイスである ID3DXEffect を使用していると思いますが、 ID3DXEffect はアノテーションの名前、型、値までしか管理せず、そのアノテーションがプログラマにとって何を意味しているのかは関与しません。 つまり、今回のような ResourceName アノテーションを理解して自動で画像ファイルをロードしてくれたりはしません。 ResourceName というアノテーションが何をするのかを決めるのは、DirectXを使ってアプリやゲームを作るプログ...
by lriki
6年前
フォーラム: C言語何でも質問掲示板
トピック: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)
返信数: 18
閲覧数: 1296

Re: MMDを用いたアニメーションにおいて姿勢を変えずに首だけを傾ける手法について(DXライブラリ)

DXライブラリってモーション適用後のフレームの行列を操作することはできませんでしたっけ?
首をターゲットに向ける回転行列を作って直接上書きした方が確実だと思うのですが・・・。
by lriki
6年前
フォーラム: C言語何でも質問掲示板
トピック: ■ 新年の挨拶トピック~2013~ ■ 今年の抱負 ■ [雑談]
返信数: 25
閲覧数: 1977

Re: ■ 新年の挨拶トピック~2013~ ■ 今年の抱負 ■ [雑談]

あけましておめでとうございます。

今年こそは制作中のゲームとライブラリをリリースしたいと思っています。
そのあとはiOSへの対応とかしてみようかと。そんなわけで本日、勉強&開発用にMBPをポチって参りました。やっほい。

フォーラムがもっと楽しく広がることを祈りつつ、今年も宜しくお願いいたします。
by lriki
6年前
フォーラム: 3Dゲーム作ろうぜ!モデリング~プログラミングまで
トピック: 簡単講座について質問・要望・アドバイス
返信数: 6
閲覧数: 5758

Re: 簡単講座~モデリング編

なにかすごい見切り発車感を感じたので、ちょっとひとつ失礼します。 講座を書き始めるのであれば、まずは最初にどんな人たちをターゲットにするのかを明記した方がいいかなと思いました。 質問掲示板の流れから「3D初心者向けなのかな?」と思ってのぞいてみたら いきなり人体モデリングとかバンプマッピングとかの話になっててびっくりしたので・・・(^^; あと、どんなことを伝えるのか決まっているなら、その範囲も書いておくといいかもです。 「DXライブラリで自分でモデルを読み込んでモーションを流せるくらいの人」とか。 もし初心者向けということであれば、用語の解説を中心に入っていくのがいいのかなと思います。 (座...
by lriki
6年前
フォーラム: C言語何でも質問掲示板
トピック: ~の値の型を~のエンティティに・・・・・・
返信数: 9
閲覧数: 2422

Re: ~の値の型を~のエンティティに・・・・・・

念のためですが・・・

winsock2.h は windows.h の前でinclude する必要があります。
vc++プロジェクトを作るとき、ウィザードでいろいろいじってるとき等は注意です。
by lriki
6年前
フォーラム: C言語何でも質問掲示板
トピック: XAudioでのループ再生時のノイズについて
返信数: 4
閲覧数: 1283

Re: XAudioでのループ再生時のノイズについて

Data は std::vector ですか?

もしそうだとすると、
buffer.AudioBytes = Data[flip].size();
の部分が怪しいです。
ちゃんと読み取ったサイズに合わせて resize していますか?

もしくは、buffer.AudioBytes には Read() で読み取ることのできたバイト数を直接設定するべきかと思います。
by lriki
6年前
フォーラム: C言語何でも質問掲示板
トピック: DxLibで自作物理演算
返信数: 36
閲覧数: 5041

Re: DxLibで自作物理演算

MikuMikuMoving等、後継ツールがいろいろ出てますけどそれらもダメですか?
by lriki
6年前
フォーラム: C言語何でも質問掲示板
トピック: Android NDK での .cppファイルと.hファイル
返信数: 2
閲覧数: 1036

Re: Android NDK での .cppファイルと.hファイル

■testC.cpp が Android.mk に追加されているか確認してみてください。
by lriki
7年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 3517

Re: Direct系でのmp3ファイルの再生について

また、comのお作法であるQueryInterfaceが無くなってるような。 それと、ちょっと調べて弄ってみたのですが強調レベルとか設定しなくて良いんですか。 初触りに付きそこら辺不明です。書いてませんし(単に読み落としただけ?)。 特に必要ありません。 初期化だけなら CoInitializeEx() ↓ XAudio2Create() ↓ IXAudio2::CreateMasteringVoice() でOKです。 あとはWAVEFORMATEXと音声データを用意して IXAudio2::CreateSourceVoice() ↓ IXAudio2SourceVoice::Submit...
by lriki
7年前
フォーラム: C言語何でも質問掲示板
トピック: Direct系でのmp3ファイルの再生について
返信数: 13
閲覧数: 3517

Re: Direct系でのmp3ファイルの再生について

何年か前からマイクロソフトは「DirectSoundよりもXAudio使ってね」という方向でいろいろ案内してるので、
新しいDirectXSDKにDirectSoundのサンプルは入ってません。
音声再生はXAudio2としてサンプルに入っています。

DirectSoundでお話が進んでる中に横槍を入れるようですが、
個人的にはXAudio2の方が使いやすくてオススメです。
エコー等のエフェクトや3Dサウンド等、特に不足なく使えますし。
by lriki
7年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 5820

Re: DirectXのビルボードについて

アルファテストするだけでいいような気がしますけどどうでしょう。 (何かテクスチャにフィルタリングかけてる場合は難しいですけど・・・) しかし、それだったらZバッファを切って描画順を自分でやってしまった方が良いと思うのですが 何か欠点等ありますでしょうか? Zバッファを使わないようにすると今度は二つのポリゴンが十字に重なった時に問題がでてきますよ。 また、この場合一括描画の利点が薄まる気がします。 この辺はもう宿命ですね。 あるところ以上は見栄えを重視するか速度を重視するか、どちらかを選ばないとなりません。 こ、これは、シェーダの深度テストを自分で書けということでしょうか。 深度テストをシェーダ...
by lriki
7年前
フォーラム: C言語何でも質問掲示板
トピック: DirectXのビルボードについて
返信数: 36
閲覧数: 5820

Re: DirectXのビルボードについて

また、格納するのはメインメモリに格納しますし、一括で描画するので個々にワールド変換行列を扱えない。 その為、回転や拡大縮小させる場合、回転や拡大縮小の際の座標計算の処理をCPUで計算しないといけないと思うのですがどうでしょうか? 固定機能を使う以上、一括で描画するためには個々の頂点の座標変換はCPUで行わなければなりません。 (頂点スキニング用の機能を使えばある程度できますけど・・・) シェーダを書く場合ですが、シェーダのレジスタ(シェーダプログラム用のグローバル変数のようなもの)に いくつかの行列を転送することで頂点ごとに別の行列を使った座標変換を行うことはできます。 が、レジスタのサイズ...

詳細検索ページへ移動する