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
管理人様、サンプルありがとうございました。
正常に動作しました。
|