トップページ > 記事閲覧
C#のサンプルプログラムありませんか
名前:らいよん 日時: 2017/04/05 17:02

本日からC#にてDXライブラリを使用させていただいております。 少し使用させて頂いたのですが、Windowsフォームアプリケーション(.NET Framework)でソリューションを作成して DXの初期化のみ記述して実行したのですが、マウスポインタが消えたり、画面全体がブラックアウトしたりしてしまいます。 使用方法に問題があると思うですがC#で使用しているサンプルみたいなものはありませんでしょうか? それとDXライブラリはフォームアプリでは使用できないのでしょうか? 初心者なもので初歩的な質問で申し訳ありませんがご教示願います。 以上、宜しくお願い申し上げます。
メンテ

Page: 1 |

Re: C#のサンプルプログラムありませんか ( No.1 )
名前:管理人 日時:2017/04/05 23:29

C#版DXライブラリの VisualStudio2015用のサンプルを C#版DXライブラリのパッケージの中に 入れてみましたので、よろしければダウンロードしてご覧になってみてください https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 解凍すると DxLibDotNet フォルダの中に Sample というフォルダがありますので、 その中の VisualStudio2015 フォルダの中の VisualStudio2015.sln をダブルクリックして プロジェクトを開いてください m(_ _)m
メンテ
Re: C#のサンプルプログラムありませんか ( No.2 )
名前:らいよん 日時:2017/04/06 09:42

管理人様 お世話になっております。早速サンプル提供ありがとうございました。 参考にさせていただきます。m(_ _)m
メンテ
Re: C#のサンプルプログラムありませんか ( No.3 )
名前:らいよん 日時:2017/04/06 17:49

度々すみません。 少し教えて頂きたいのですがDXLiBの出力先をPictureBoxにすることは可能ですか? 試してみたのですが、表示されずに終了してしまいます。 仮に無理な場合はDxLibの出力先に指定したフォームをPictureBoxのように扱う?みたいな感じでしょうか? ※FormにFormを埋め込めるかは?ですが。 すみませんがご教示ください。 以上、宜しくお願い申し上げます。
メンテ
Re: C#のサンプルプログラムありませんか ( No.4 )
名前:管理人 日時:2017/04/06 23:52

出力先を変えるのでしたら DxLib_Init を呼ぶ前に SetUserWindow で PictureBox のウインドウハンドルを 出力先に指定することで変更することが出来ます // DxLib_Init の前に出力先ウインドウを SetUserWindow で指定する DX.SetUserWindow( PixtureBox.Handle ); // SetUserWindow の後に DxLib_Init を呼ぶ if( DX.DxLib_Init() < 0 ) { return -1; } 出力先が複数ある場合は、ScreenFlip を呼ぶ前に SetScreenFlipTargetWindow で出力先にしたいウインドウの ハンドルを指定すれば、ScreenFlip の出力先を指定のウインドウに変更することが出来ます // ScreenFlip の前に、ScreenFlip の転送先を指定する DX.SetScreenFlipTargetWindow( PictureBox.Handle ); // PictureBox.Handle に裏画面の内容が転送される DX.ScreenFlip(); よろしければお試しください m(_ _)m
メンテ
Re: C#のサンプルプログラムありませんか ( No.5 )
名前:らいよん 日時:2017/04/07 11:53

回答ありがとうございます。早速試させて頂いたのですが DX.DxLib_Initまでは実行されているのですが、以降終了してしまうようです。 とりあえず初歩段階でコーディングしたソースを添付させていただきます。 ・Windows10 Pro、Visual Studio2017 C#にてWindowsフォームアプリケーション(.NET Framework)を選択 ・プロジェクト→参照の追加→DxLibDotNet.dllを指定しています。 ・Form1.cs[デザイン]にてPictureBoxを1つ配置しています。 --------------------------------------------------------------------------------- [Program.cs] using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace WindowsFormsApp1 { static class Program { /// <summary> /// アプリケーションのメイン エントリ ポイントです。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } --------------------------------------------------------------------------------- [Form1.cs] using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using DxLibDLL; namespace WindowsFormsApp1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); DX.SetUserWindow(pictureBox1.Handle); //DxLibの親ウインドウをこのフォームウインドウにセット //DX.SetUserWindow(this.Handle); //DxLibの親ウインドウをこのフォームウインドウにセット ←こちらでは画像(images.jpg)が表示されます。 if (DX.DxLib_Init() < 0) { MessageBox.Show("初期化エラー"); return; } } private void Form1_Load(object sender, EventArgs e) { DX.LoadGraphScreen(10, 10, "images.jpg", DX.TRUE); // 画像を描画 } private void Form1_FormClosed(object sender, FormClosedEventArgs e) { DX.DxLib_End(); // DXライブラリ使用の終了処理 } } } 度々で申し訳ありませんが宜しくお願いします。
メンテ
Re: C#のサンプルプログラムありませんか ( No.6 )
名前:管理人 日時:2017/04/08 15:55

手元で VisualStudio2017 を使用して試してみましたが、問題なく PixcureBox に描画結果を出力することができました 試したときに使用したプロジェクトをアップしましたので、よろしければご覧になってみてください m(_ _)m https://dxlib.xsrv.jp/temp/WindowsFormsAppTest.exe ただ、C#用DXライブラリのパッケージの中にある readme.txt には「DxLib.dllをコピーしてください」とあるのですが、 現在は DxLib_x64.dll もあるので、正しくは「DxLib.dll と DxLib_x64.dll をコピーしてください」となります、 なのでビルドして作成された実行ファイルと同フォルダに DxLib.dll しかコピーされていませんでしたら それが正常に動作しなかった原因かもしれません m(_ _;m ( readme.txt の記述は修正しておきました )
メンテ
Re: C#のサンプルプログラムありませんか ( No.7 )
名前:らいよん(解決) 日時:2017/04/10 09:45

管理人様、サンプルありがとうございました。 正常に動作しました。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存