C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

全過去ログを検索

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>
■6776  Re[6]: グリッドにデータを入れる関数?
□投稿者/ miyuki -(2006/09/24(Sun) 22:45:23)

    分類:[C#] 

    > つまりこの、テーブル上でのフィールド名とそれに対応するグリッド上の位置を対応表にしておいて、グリッドに配置するときにその対応表に基づけ、と。
    返信ありがとうございます。
    その対応表を作るというのは分かるのですが、
    具体的に対応表ってどのようにプログラムで作成するのでしょうか?
    よろしくお願いします。
    ----------------------------------
    だくさんのやり方はかなり良い感じで成功しました。
    (自分で投稿したプログラムも少し間違っていて、年数毎に行を作成しないといけないのに、毎回データ毎に行を作るという変なプログラムになっていました・・・もう一度しっかりと整理します)
    やってみて少し問題が出たのですが、1期〜4期のデータは絶対に入っている事はないというのが問題です。
    全てデータが入っていたらOKなのですが、
    データが、
    "2006","1","4/1"
    "2006","2","7/1"
    "2006","4","1/1"
    という感じで3期のデータが入っていない場合は、
    データ無しと表示しなくてはならないのです。
    データ無し表示はどうしようか迷っています。
    何か簡単な良いアイディアないでしょうか?
記事No.6737 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■6737  グリッドにデータを入れる関数?
□投稿者/ miyuki -(2006/09/22(Fri) 23:28:25)

    分類:[C#] 


    分類:[C#] 

    2006/09/22(Fri) 23:34:36 編集(投稿者)

    C#で、グリッドにデータを表示したい時に、グリッドの表が

    ----------------------
    | 年 | 1 | 2 | 3 | 4 |   ←項目名
    ----------------------
    年|期にあった日付|日付|日付|日付| ←データ
    ----------------------
    年|期にあった日付|日付|日付|日付|
    ----------------------


    のような感じでデータが表示される時に、データベースは、

    フィールド名
    年(2001年とか2002年などの4桁の西暦)、期(1,2,3,4しか入っていない)、日付

    という3つのフィールドで構成されている時は、
    グリッドにデータを表示させたい場合、みなさんはどのように行っているのでしょうか?

    foreach (Info info in list)
    {
    DataRow dataRow = dataTable.NewRow();
    dataRow["年"] = info.year;
    if(info.ki.Equals("1"))
    {
    dataRow["1"] = info.date;
    }
    else if(info.ki.Equals("2"))
    {
    dataRow["2"] = info.date;
    }
    else if(info.ki.Equals("3"))
    {
    dataRow["3"] = info.date
    }
    else if(info.ki.Equals("4"))
    {
    dataRow["4"] = info.date
    }
    dataTable.Rows.Add(dataRow);
    }
    grid.DataSource = dataTable;


    今はこのような感じで、if文を使用し、ループでデータ毎に振り分けを行い、datasetに入れています。
    ちゃんとorder句でデータを並べておかないとめちゃくちゃになります。
    infoは、テーブル構成と同じフィールドを持ったgetter,setterになっています。
    テーブル構成が、

    フィールド名
    年、1期の日付、2期の日付、3期の日付、4期の日付

    というようなデータベースの構成なら、
    foreach (Info info in list)
    {

    dataRow["年"] = info.year;
    dataRow["1"] = info.1kiDate;
    dataRow["2"] = info.2kiDate;
    dataRow["3"] = info.3kiDate;
    dataRow["4"] = info.4kiDate;
    }

    で楽なのにと思っているのですが、テーブル構成とグリッドの構成が違う場合、
    ベテランの玄人の方ならどのように書いているのでしょうか?
    汎用的な関数とかinfoをいじったりとか、dataRowをうまく利用したりしているのでしょうか?
    私は、デザインパターンとかあまりよく分かっていないので、汚いロジックになってしまっています。
    良いアドバイスなどありましたらお願いします。

親記事 /0過去ログ6より / 関連記事表示
削除チェック/

■6603  Re[1]: C# から VB6.0のDLLのメッソドを起動
□投稿者/ 魔界の仮面弁士 -(2006/09/19(Tue) 23:59:50)

    分類:[C#] 

    # 「メソッド」表現と
    # 「メッソド」表現が混在しているのが気になりますが、
    # それはとりあえず置いといて……。


    > DLL 側の引数が byref の object型になっていて、
    > 各メソッド内で、object.hoge = "" 等
    > DLL 側で値をセットしています。
    VB6製DLLにオブジェクトを渡す場合、そのデータ型は、COM として
    レジストリに登録されている型である必要があります。指定したクラスが、
    COMとして公開されているかどうかを確認してみてください。


    > object hoge = new clsHoge();
    > vbdll.vbhoge( ref hoge );

    こんな感じでどうでしょう。


    ---------- VB6製DLL (ProgID = "VB6SampleDLL.SampleClass") ----------
    Option Explicit
    Public Sub vbhoge(ByRef object As Object)
    object.hoge = Format(Now, "yyyy-mm-dd hh:nn:ss")
    End Sub

    '以下は、Marshal.ReleaseComObject の解放が行われたかのチェック用
    Private Sub Class_Initialize()
    Debug.Print "-->"; ObjPtr(Me)
    End Sub
    Private Sub Class_Terminate()
    Debug.Print "<--"; ObjPtr(Me)
    End Sub


    ---------- C#2.0製コンソールアプリ ----------
    using System;
    using System.Runtime.InteropServices;

    namespace ConsoleApplication1
    {
    class Program
    {
    static void Main(string[] args)
    {
    VB6SampleDLL.SampleClass vbdll = null;
    try
    {
    object clsHoge = new Hoge();
    vbdll = new VB6SampleDLL.SampleClassClass();
    vbdll.vbhoge(ref clsHoge);
    Console.WriteLine(((Hoge)clsHoge).hoge);
    }
    catch (Exception ex)
    {
    Console.WriteLine(ex.Message);
    }
    finally
    {
    if ((vbdll != null) && Marshal.IsComObject(vbdll))
    {
    Marshal.ReleaseComObject(vbdll);
    }
    }
    Console.ReadLine();
    }
    }

    [ComVisible(true)]
    //[Guid("{1F4F835B-1702-4df9-8AF8-A782713FD1EC}")]
    //[ClassInterfaceAttribute(ClassInterfaceType.AutoDual)]
    public class Hoge
    {
    public string hoge = String.Empty;
    }
    }

記事No.6581 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■6503  DataGridのRowの設定について
□投稿者/ ど素人 -(2006/09/14(Thu) 12:05:06)

    分類:[ASP.NET] 


    分類:[ASP.NET] 

    ASP.NET初心者です。

    言語はVBで、統合環境はVS2005です。

    ASP.NETの画面にDataGridを貼り付けて
    PageのLoad時にそのDataGridにデータを吐き出す処理を作成しています。
    PageのLoad時に下記のメソッドを呼び出しています。

    DataGridの[チェック]列にチェックボックスを作成したいのですが、
    方法がわかりません。

    いろいろ調べたのですが下記の方法で作成できると思うのですが、
    ???の箇所になにを設定すればいいのかわかりません。

    どのようにすれば[チェック]列にチェックボックスを作成できますか??
    下記の方法以外でもわかる方教えてください。よろしくお願いします。


    ------------------------------------------------------------------------
    Dim dtTable As DataTable
    Dim dtRow As DataRow
    Dim ret As ICollection

    'DataTable作成
    dtTable = New DataTable
    dtTable.Columns.Add(New DataColumn("チェック", GetType(CheckBox)))
    dtTable.Columns.Add(New DataColumn("No.", GetType(Integer)))
    dtTable.Columns.Add(New DataColumn("処理日時", GetType(DateTime)))
    dtTable.Columns.Add(New DataColumn("処理番号", GetType(Integer)))
    dtTable.Columns.Add(New DataColumn("名称", GetType(String)))

    'Rowの作成
    For i As Integer = 1 To 5
    dtRow = dtTable.NewRow()
    dtRow(0) = ???
    dtRow(1) = i

    'DataTableにRow追加
    dtTable.Rows.Add(dtRow)
    Next i

    ret = New DataView(dtTable)
    ------------------------------------------------------------------------
親記事 /0過去ログ6より / 関連記事表示
削除チェック/

■6374  Re[1]: エスケープ・シーケンスの記述法
□投稿者/ 魔界の仮面弁士 -(2006/09/08(Fri) 15:28:09)

    分類:[VC++(C++/CLI)] 

    # 回答にあらず

    > VS2002 VC++ Managed C++アプリケーションで学習しています。
    > xp ではどのような記述(コードの書き方)になるのでしょうか?

    Managed C++ なら、コンソールへの色づけはエスケープシーケンスではなく、
    Console クラスにて行えます。ただし、(2002 ではなく)2005 が必要ですが。

    //-------------------
    #include "stdafx.h"
    using namespace System;
    void main()
    {
    Console::BackgroundColor = ConsoleColor::Green;
    Console::ForegroundColor = ConsoleColor::Red;
    Console::WriteLine(L"Enterキーを押してください。");

    Console::ResetColor();
    Console::ReadLine();
    }

記事No.6348 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■6266  Re[1]: System.Diagnostics.Process.Startについて
□投稿者/ ダッチ -(2006/09/04(Mon) 22:28:39)

    分類:[VB.NET] 

    ダッチです。

    > ログファイルを指定したエディタで開きたい場合に
    > 以下のようなコードを記述しました。
    > System.Diagnostics.Process.Start("Notepad",ファイル名)

    ヘルプを読むと Process.Start の引数が二つの場合は

    MSDNより引用-----------------------
    fileName
    プロセスで実行するアプリケーション ファイルの名前。

    arguments
    プロセスを起動するときに渡すコマンド ライン引数。
    -----------------------------------
    となっています。
    第一引数が fileName
    第二引数が arguments

    桜さんのコードですと、
    fileName に ini ファイルで設定したエディタ
    arguments に関連して開きたいファイルパス
    ということですよね。

    であれば、ini ファイルで設定したエディタのパスが有効かどうかを
    検証してみるとシステムエラーにならないと思います。
    ついでに arguments のファイルも検証するといいと思います。

    検証する方法は
    System.IO.File.Exists("ファイルパス")
    でファイルの存在確認をするといいと思います。


記事No.6263 のレス /0過去ログ6より / 関連記事表示
削除チェック/

■7560  Re[1]: Excelのバージョンの違いについて
□投稿者/ 魔界の仮面弁士 -(2006/10/17(Tue) 21:54:52)

    分類:[C#] 

    > セルのコピーだけがうまくいきません。

    Range クラスの Copy メソッドの事で良いでしょうか?

    だとすれば、Excel 97 までは戻り値の無い(void)メソッドでしたが、
    2000 以上ではバリアント(object)を返すメソッドに変更されています。


    具体的には、こんな定義です。
    -----------------

    [uuid(00020846-0001-0000-C000-000000000046)]
    interface IRange : IDispatch
    {
    // Excel 8
    // HRESULT _stdcall Copy([in, optional] VARIANT Destination);

    // Excel 9, 10, 11
    HRESULT _stdcall Copy(
    [in, optional] VARIANT Destination,
    [out, retval] VARIANT* RHS);
    }


    [uuid(00020846-0000-0000-C000-000000000046)]
    dispinterface Range
    {
    methods:
    // Excel 8
    // [id(0x00000227)]
    // void Copy([in, optional] VARIANT Destination);

    // Excel 9, 10, 11
    [id(0x00000227)]
    VARIANT Copy([in, optional] VARIANT Destination);
    }

記事No.7559 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7511  Re[6]: クリックでフォーカス遷移
□投稿者/ とんみ -(2006/10/14(Sat) 17:38:09)

    分類:[VB.NET] 

    No7508に返信(ダッチさんの記事)

    ダッチさんどうもです。

    > ちょっと画面サンプルを作ってみました。
    >
    > 画面サンプル--------------------------------------------
    >      [計測ボタン] [計測ボタン] [計測ボタン]
    >
    >        一つ目 |  二つ目 |   三つ目
    > 皿   :    11 |    12 |     13
    > サンプル:    101 |    102 |     103
    > 乾燥後 :    51 |    52 |     53
    > ------------------------------------------------
    > 不揮発分:   50.89 |   51.88 |    52.87
    > ------------------------------------------------ここまで
    >

    > このような感じであってますでしょうか?

     すっすばらしい洞察力ですね!
    私のやりたいことはまさにこの事です。

    > 一つ目・二つ目・三つ目専用の計測ボタンを用意します。
    > 各計測ボタンはボタンを押すごとに
    > 「皿」「サンプル」「乾燥後」の順に値を設定していきます。
    > ※ここはフラグより計量回数を用意してどこまで計測したかを判断します。
    > 乾燥後の計測が完了してところで、不揮発分に自動で値が設定されます。

    私の場合、計測ボタンは1つなのですが、3つの場合SerrialPortの設定
    (Com1,Com2,等)の設定のからみがあると思いますが…。

    もう少し経験を積み、出直してきます。お付き合いくださいましてありがとう
    ございます。






記事No.7496 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7508  Re[5]: クリックでフォーカス遷移
□投稿者/ ダッチ -(2006/10/14(Sat) 12:37:18)

    分類:[VB.NET] 

    > 計量値を読み、ノートに手書きをして電卓で計算する
    > この操作は非常に煩雑で、これがうまくいけば面白いんですが…。

    手書きの部分で記入誤りが発生したり、
    電卓の打ち間違いなどが発生したりしますからね。

    それでこの作業をプログラムを使用して自動化したいと思ったのですね。

    ちょっと画面サンプルを作ってみました。

    画面サンプル--------------------------------------------
         [計測ボタン] [計測ボタン] [計測ボタン]

           一つ目 |  二つ目 |   三つ目
    皿   :    11 |    12 |     13
    サンプル:    101 |    102 |     103
    乾燥後 :    51 |    52 |     53
    ------------------------------------------------
    不揮発分:   50.89 |   51.88 |    52.87
    ------------------------------------------------ここまで

    一つ目・二つ目・三つ目専用の計測ボタンを用意します。
    各計測ボタンはボタンを押すごとに
    「皿」「サンプル」「乾燥後」の順に値を設定していきます。
    ※ここはフラグより計量回数を用意してどこまで計測したかを判断します。
    乾燥後の計測が完了してところで、不揮発分に自動で値が設定されます。

    このような感じであってますでしょうか?


    画面をグリッド系のコントロールを使用すれば
    三回限定でなくても可変にすることができますが、
    扱いが難しいかもしれませんので

    Label や TextBox を使用したほうが、早くできるでしょう。

記事No.7496 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7453  Re[4]: セッション管理DBの作成
□投稿者/ RIN -(2006/10/12(Thu) 13:41:59)

    分類:[ASP.NET] 

    No7443に返信(中博俊さんの記事)
    > じゃちがうね。
    >
    > select *
    > from [master].[sys].[databases]
    >
    > を流して、本当にその接続文字列で接続する先のデータベースにasp.net用データベースが構築されているか確認してください。

    お世話になっております。ご返信ありがとうございます。

    select * from [master].[sys].[databases]の結果です。
    (<MyServer>はインスタンス名がはいっていますので伏せています)
    ------------------
    master 1
    tempdb 2
    model 3
    msdb 4
    ReportServer$<MyServer> 5
    ReportServer$<MyServer>TempDB 6
    AdventureWorksDW 7
    AdventureWorks 8
    ASPState 9
    ------------------
    Initial Catalog=ASPStateにしても変わりはありませんでした。

    確認で使用している.aspxはボタン押下で数字をカウントアップするだけのものなのでSQL Serverにエラーの原因があるとは思うのですが。

    あと、ASP.NET version 2.0 Session Stateというキーワードで検索していて
    aspnet_regiisを使用してインストールルートを2.xに更新する記事がありましたので、こちらも試してみましたが、変わりはありませんでした。
    ---------
    E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727>aspnet_regiis -lv
    1.1.4322.0 有効 E:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
    2.0.50727.0 有効 (ルート) E:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
    ---------

    もう少し調べてわからなければSQL Serverを入れなおしてみます。


記事No.7438 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7393  ファイル作成について
□投稿者/ 風影 -(2006/10/10(Tue) 16:52:56)

    分類:[VC++(C++/CLI)] 


    分類:[VC++(C++/CLI)] 

    今DLLを使ったプログラムを作っていて、その中のプログラムなのですが、DLLとEXEはコンパイルすると正常終了するのですが実行するとエラーが出ます。
    おそらくOLLのファイルのオープン(新規作成)でてこずっていると思うのですが、色々試したのですが理由がわからなく書き込みました。

    DLLはVC2005で作り、EXEは.net2003C#で作っています。
    どうかアドバイスを頂ければ幸いです。

    DLL
    ---------------------------------------------------------------
    extern "C" __declspec(dllexport)
    int __stdcall WINAPI Dll_fileopen()
    {
    char *filename; /* NULL ならファイル指定なしとします */
    FILE *fp;
    char fname[80] = "";

    if ( filename == NULL ) { /* ファイル指定なし */
    fp = stdin;
    } else { /* ファイル指定あり */
    fopen_s(&fp ,fname, "w" );

    if ( fp == NULL ) {
    fprintf( stderr, "'%s'が読み込めません.\n", filename );
    exit(1); /* 異常終了 */
    }
    }
    return 0;
    }
    ------------------------------------------------------------------
    DLL呼び出し部(EXE)
    ------------------------------------------------------------------
    class Dll
    {
    [DllImport("dllnew.dll")]
    public static extern int Dll_fileopen();
    }

    private void button1_Click(object sender, System.EventArgs e)
    {
    Dll.Dll_fileopen();
    }
親記事 /0過去ログ7より / 関連記事表示
削除チェック/

■7389  Re[12]: 新しいフォームの作成
□投稿者/ ダッチ -(2006/10/10(Tue) 15:12:57)

    分類:[VB.NET] 

    > ------------------------------------------
    > 'Windowsフォームデザイナで生成されたコード
    > ------------------------------------------
    ここに隠れている

    Public Sub New()
    MyBase.New()

    ' この呼び出しは Windows フォーム デザイナで必要です。
    InitializeComponent()

    ' InitializeComponent() 呼び出しの後に初期化を追加します。

    End Sub

    このコードが呼び出されていない為、
    CheckBox1 と CheckBox2 のインスタンスが生成されていません。
    そのため「System.NullReferenceException」の例外が発生します。

    それとプロパティについてですが、
    Public Property pp1 As String
      Get
        Return CheckBox1.Checked
      End Get
      Set(ByVal Value As String)
        
      End Set
    End Property
    pp1 の型は「String」です。
    CheckBox1.Checked の型は「Boolean」です。
    方が一致していませんので一致させましょう。

    > コンストラクタはわかりますでしょうか。
    > クラス名と同じメソッドがコンストラクタです。
    ごめんなさい。C# と勘違いしてました。
    VB では New でしたね。
記事No.7281 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7387  Re[11]: 新しいフォームの作成
□投稿者/ 圭 -(2006/10/10(Tue) 13:32:46)

    分類:[VB.NET] 

    いろいろコードを変えたり、加えたりしましたがなかなかうまくいかないです。Form1とForm2でIF文が重なりあっておかしくなっていると思うのですが
    先に進みません。よろしくお願いします。
    ちなみに↓記箇所で「'System.NullReferenceException' のハンドルされていない例外が SeiKoteiHyo.exe で発生しました。

    追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」
    となっています。

    *********************************************************************************************************
    Public Class Form1
    Inherits System.Windows.Forms.Form
    ------------------------------------------
    'Windowsフォームデザイナで生成されたコード
    ------------------------------------------
    '-----
    '中略
    '-----
    Private Sub Menu1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Menu1.Click

    Dim fm As New Form2(cs1.width, cs2.width)

    If fm.ShowDialog=DialogResult.Cancel Then 'キャンセルされた時
    Exit Sub

    If fm.pp1 = False Then
    cs1.Width = 0 'Form2のCheckBox1のチェックがはずせれたら第1列目を消す
    End If

    If fm.pp2 = False Then
    cs2.Width = 0 'Form2のCheckBox2のチェックがはずせれたら第2列目を消す
    End If
    End Sub
    End Class
    ---------------------------------------------------------------------------------------------------------


    'Form1のメニューからForm2を呼び出す
    Public Class Form2
    Inherits System.Windows.Forms.Form
    ------------------------------------------
    'Windowsフォームデザイナで生成されたコード
    ------------------------------------------
    Public Property pp1 As String
    Get
    Return CheckBox1.Checked
    End Get
    Set(ByVal Value As String)

    End Set
    End Property

    Public Property pp2 As String
    Get
    Return CheckBox2.Checked
    End Get
    Set(ByVal Value As String)

    End Set
    End Property

    Public Sub New(Byval Value1 As Integer,Byval Value2 As Integer)

    If Value1<>0 Then
    CheckBox1.Checked = True     ←ここで例外
    End If

    If Value2<>0 Then
    CheckBox2.Checked = True
    End If

    End Sub

記事No.7281 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7281  新しいフォームの作成
□投稿者/ 圭 -(2006/10/06(Fri) 09:29:06)

    分類:[VB.NET] 


    分類:[VB.NET] 

    少し、行き詰まっていることがあります。内容は以下の通りです。
     1.Form1(メインのフォームで)とForm2(CheckBoxが2個と決定ボタン)がある。
     2.Form1にはdatagridとmenuがあり、メニューからForm2を呼出しCheckBoxのチェックを外す
      ことによってForm1のdatagridの列を見えなくしたい。
     3.CheckBoxは初めチェックがついた状態で、Checkを外すとForm1にきちんと反映される。
     4.ところが、再びForm2を呼び出すとForm2のチェックの状態が初期状態に戻ってしまっている。
    ↓に簡略化したコードを示しますので、どのようにしたらForm2の状態がきちんと更新されるか
    お願い致します。


    *********************************************************************************************************
    Public Class Form1
    Inherits System.Windows.Forms.Form
    ------------------------------------------
    'Windowsフォームデザイナで生成されたコード
    ------------------------------------------
    '-----
    '中略
    '-----
    Private Sub Menu1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Menu1.Click

    Dim fm As New Form2

    If fm.pp1 = False Then
    cs1.Width = 0 'Form2のCheckBox1のチェックがはずせれたら第1列目を消す
    End If

    If fm.pp2 = False Then
    cs2.Width = 0 'Form2のCheckBox2のチェックがはずせれたら第2列目を消す
    End If
    End Sub
    End Class
    ---------------------------------------------------------------------------------------------------------


    'Form1のメニューからForm2を呼び出す
    Public Class Form2
    Inherits System.Windows.Forms.Form
    ------------------------------------------
    'Windowsフォームデザイナで生成されたコード
    ------------------------------------------
    Public Property pp1 As String
    Get
    Return CheckBox1.Checked
    End Get
    Set(ByVal Value As String)

    End Set
    End Property

    Public Property pp2 As String
    Get
    Return CheckBox2.Checked
    End Get
    Set(ByVal Value As String)

    End Set
    End Property

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    CheckBox1.Checked = True '初期状態ではCheckBox1のチェックは付いた状態
    CheckBox2.Checked() = True '初期状態ではCheckBox2のチェックは付いた状態
    End Sub

    End Class
    *************************************************************************************************************

親記事 /0過去ログ7より / 関連記事表示
削除チェック/

■7340  Re[2]: profilerで呼び出し履歴が取れないでしょうか
□投稿者/ ognac -(2006/10/07(Sat) 00:32:21)

    分類:[.NET 全般] 

    No7331に返信(NyaRuRuさんの記事)

    > 何がやりたいのかよく分からないのですが,CLR Profiler に付属するソースコードを改良して機能を追加したいという話ですか?
    > この辺の API を使えば,呼び出し履歴の取得ぐらいは普通にできそうな気がしますけど.


    NyaRuRu さん、ありがとうごさいます。

    [デバッグテクニック徹底解説]の本によりますと, プロファインリングAPIの解説で、通知フラグの ENTERLEAVEでCALLBackを設定すると、
    関数HOOKが可能で.下のクラスを実行すると,結果として, Trace実行結果 を作成することが可能が得られるとあります。
    この機能を CLR_Profilerで出来ないのかと悩んでいます。
    提示されたURLを熟読してみます。

    ------------------サンプルソース
    class ThreadOne
    {
    public void EntryPoint ( )
    {
    Do ( ) ;
    }

    void Do ( )
    {
    Re ( ) ;
    }

    void Re ( )
    {
    Mi ( ) ;
    }

    void Mi ( )
    {
    Fa ( ) ;
    }

    void Fa ( )
    {
    So ( ) ;
    }

    void So ( )
    {
    La ( ) ;
    }

    void La ( )
    {
    Ti ( ) ;
    }

    void Ti ( )
    {
    Doh ( ) ;
    }

    void Doh ( )
    {
    MessageBeep ( -1 ) ;
    }

    [DllImport("user32.dll")]
    private static extern Int32 MessageBeep ( Int32 uType ) ;
    }
    これを
    private void BtnThreadOne_Click(object sender, System.EventArgs e)
    {
    ThreadOne c = new ThreadOne ( ) ;
    Thread t = new Thread ( new ThreadStart ( c.EntryPoint ) ) ;
    t.IsBackground = true ;
    t.Name = "Thread One" ;
    t.Start ( ) ;
    }
    で起動します。
    --▼Trace実行結果

    Thread 1 started at : 11:33:33:0846
    FlowTest.ThreadOne.EntryPoint
    FlowTest.ThreadOne.Do
    FlowTest.ThreadOne.Re
    FlowTest.ThreadOne.Mi
    FlowTest.ThreadOne.Fa
    FlowTest.ThreadOne.So
    FlowTest.ThreadOne.La
    FlowTest.ThreadOne.Ti
    FlowTest.ThreadOne.Doh
    System.Security.Permissions.SecurityPermission..ctor
    System.Security.Permissions.SecurityPermission.VerifyAccess
    System.Security.Permissions.SecurityPermission.VerifyAccess
    System.Security.Permissions.SecurityPermission..ctor
    FlowTest.ThreadOne.Doh
    FlowTest.ThreadOne.Ti
    FlowTest.ThreadOne.La
    FlowTest.ThreadOne.So
    FlowTest.ThreadOne.Fa
    FlowTest.ThreadOne.Mi
    FlowTest.ThreadOne.Re
    FlowTest.ThreadOne.Do
    FlowTest.ThreadOne.EntryPoint
    Thread ended at : 11:33:33:0846

    --▲Trace結果


記事No.7277 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7243  フォームの追加
□投稿者/ 圭 -(2006/10/05(Thu) 12:00:35)

    分類:[VB.NET] 


    分類:[VB.NET] 

    今vb.netを勉強中で、ある本に
    メインであるForm1からForm2のプロパティを取得する場合は
    Form2に↓のようなプロパティを作成して

    ----------------------------------------
    'Form2のコード
    ----------------------------------------
    Public Property findkey() As String
    Get
    return txtKey.Text
    End Get

    Set(ByVal Value As String)

    End Set
    End Property
    ----------------------------------------

    Form1にて
      Dim fm As New Form2()
    でForm2のインスタンスを作成してから
      fm.findkey
    により、txtKey.textを得る事ができると書いてあります。この場合はtxtKey.Text一つですが、これが複数のプロパティを得たい時は
    どうすればよいですか?
    例えば、Form2にチェックボックスが複数個あり、そのチェックボックスの印が在るか否かをメインである
    Form1で得たい時とかです。
    よろしくお願いします。




親記事 /0過去ログ7より / 関連記事表示
削除チェック/

■7201  ソフトウェア納品
□投稿者/ takeshi -(2006/10/04(Wed) 16:26:04)

    分類:[C#] 


    分類:[C#] 

    教えてください、プログラマに方にソフトウェアを依頼して
    納品されたのですが、下のエラーが出ますがプログラマーミスなのですか、それとも私のPCの環境が悪いのですか?designed for windows xpをつかっています。

    わかる方説明よろしくお願いします。

    Just-In-Time (JIT) デバッグを呼び出すための詳細については、
    ダイアログ ボックスではなく、このメッセージの最後を参照してください。

    ************** 例外テキスト **************
    System.InvalidOperationException: フォームの作成中にエラーが発生しました。詳細については、Exception.InnerException を参照してください。エラー: クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG)) ---> System.Runtime.InteropServices.COMException (0x80040154): クラスが登録されていません (HRESULT からの例外: 0x80040154 (REGDB_E_CLASSNOTREG))
    場所 System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
    場所 System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
    場所 System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
    場所 System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
    場所 System.Windows.Forms.AxHost.CreateInstance()
    場所 System.Windows.Forms.AxHost.GetOcxCreate()
    場所 System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
    場所 System.Windows.Forms.AxHost.CreateHandle()
    場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    場所 System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
    場所 System.Windows.Forms.AxHost.EndInit()
    場所 ManbaYh.frmDaysSelect.InitializeComponent()
    場所 ManbaYh.frmDaysSelect..ctor()
    --- 内部例外スタック トレースの終わり ---
    場所 ManbaYh.My.MyProject.MyForms.Create__Instance__[T](T Instance)
    場所 ManbaYh.My.MyProject.MyForms.get_frmDaysSelect()
    場所 ManbaYh.frmMain.btnDays_Click(Object sender, EventArgs e)
    場所 System.Windows.Forms.Control.OnClick(EventArgs e)
    場所 System.Windows.Forms.Button.OnClick(EventArgs e)
    場所 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    場所 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    場所 System.Windows.Forms.Control.WndProc(Message& m)
    場所 System.Windows.Forms.ButtonBase.WndProc(Message& m)
    場所 System.Windows.Forms.Button.WndProc(Message& m)
    場所 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    場所 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    場所 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


    ************** 読み込まれたアセンブリ **************
    mscorlib
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    万馬券予報
    アセンブリ バージョン: 1.0.0.0
    Win32 バージョン: 1.0.0.0
    コードベース: file:///C:/Documents%20and%20Settings/Takeshi/Local%20Settings/Apps/2.0/WONBGHRH.ARY/50R6G5ZA.1W9/.app..tion_d8145abab0cba34c_0001.0000_df88e1418d64500b/万馬券予報.exe
    ----------------------------------------
    Microsoft.VisualBasic
    アセンブリ バージョン: 8.0.0.0
    Win32 バージョン: 8.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
    ----------------------------------------
    System
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    System.Windows.Forms
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    ----------------------------------------
    System.Drawing
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    ----------------------------------------
    System.Runtime.Remoting
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
    ----------------------------------------
    System.Configuration
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    ----------------------------------------
    System.Xml
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
    ----------------------------------------
    AxInterop.JVDTLabLib
    アセンブリ バージョン: 1.18.0.0
    Win32 バージョン: 1.18.0.0
    コードベース: file:///C:/Documents%20and%20Settings/Takeshi/Local%20Settings/Apps/2.0/WONBGHRH.ARY/50R6G5ZA.1W9/.app..tion_d8145abab0cba34c_0001.0000_df88e1418d64500b/AxInterop.JVDTLabLib.DLL
    ----------------------------------------
    System.Windows.Forms.resources
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms.resources/2.0.0.0_ja_b77a5c561934e089/System.Windows.Forms.resources.dll
    ----------------------------------------
    AxInterop.MSHierarchicalFlexGridLib
    アセンブリ バージョン: 6.0.0.0
    Win32 バージョン: 6.0.0.0
    コードベース: file:///C:/Documents%20and%20Settings/Takeshi/Local%20Settings/Apps/2.0/WONBGHRH.ARY/50R6G5ZA.1W9/.app..tion_d8145abab0cba34c_0001.0000_df88e1418d64500b/AxInterop.MSHierarchicalFlexGridLib.DLL
    ----------------------------------------
    Interop.MSHierarchicalFlexGridLib
    アセンブリ バージョン: 6.0.0.0
    Win32 バージョン: 6.0.0.0
    コードベース: file:///C:/Documents%20and%20Settings/Takeshi/Local%20Settings/Apps/2.0/WONBGHRH.ARY/50R6G5ZA.1W9/.app..tion_d8145abab0cba34c_0001.0000_df88e1418d64500b/Interop.MSHierarchicalFlexGridLib.DLL
    ----------------------------------------
    Accessibility
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
    ----------------------------------------
    Interop.JVDTLabLib
    アセンブリ バージョン: 1.18.0.0
    Win32 バージョン: 1.18.0.0
    コードベース: file:///C:/Documents%20and%20Settings/Takeshi/Local%20Settings/Apps/2.0/WONBGHRH.ARY/50R6G5ZA.1W9/.app..tion_d8145abab0cba34c_0001.0000_df88e1418d64500b/Interop.JVDTLabLib.DLL
    ----------------------------------------
    7n2y26dv
    アセンブリ バージョン: 1.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
    ----------------------------------------
    mscorlib.resources
    アセンブリ バージョン: 2.0.0.0
    Win32 バージョン: 2.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
    ----------------------------------------
    MSDATASRC
    アセンブリ バージョン: 7.0.3300.0
    Win32 バージョン: 7.00.9466
    コードベース: file:///C:/WINDOWS/assembly/GAC/MSDATASRC/7.0.3300.0__b03f5f7f11d50a3a/MSDATASRC.dll
    ----------------------------------------
    Microsoft.VisualBasic.resources
    アセンブリ バージョン: 8.0.0.0
    Win32 バージョン: 8.0.50727.42 (RTM.050727-4200)
    コードベース: file:///C:/WINDOWS/assembly/GAC_MSIL/Microsoft.VisualBasic.resources/8.0.0.0_ja_b03f5f7f11d50a3a/Microsoft.VisualBasic.resources.dll
    ----------------------------------------

    ************** JIT デバッグ **************
    Just-In-Time (JIT) デバッグを有効にするには、このアプリケーション、
    またはコンピュータ (machine.config) の構成ファイルの jitDebugging
    値を system.windows.forms セクションで設定しなければなりません。
    アプリケーションはまた、デバッグを有効にしてコンパイルされなければ
    なりません。

    例:

    <configuration>
    <system.windows.forms jitDebugging="true" />
    </configuration>

    JIT デバッグが有効なときは、このダイアログ ボックスで処理するよりも、
    ハンドルされていない例外はすべてコンピュータに登録された
    JIT デバッガに設定されなければなりません
親記事 /0過去ログ7より / 関連記事表示
削除チェック/

■7121  Re[8]: 'Dll_TestMessageBox' : 定義されていない識別子です。
□投稿者/ 風影 -(2006/10/03(Tue) 17:04:27)

    分類:[C#] 

    Blueさん、おへんじありがとうございます。

    --------------------------------------------------------------------------
    #include "StdAfx.h"
    #include "TestMsgBox.h"

    int WINAPI Dll_TestMessageBox()
    {
    ここですね→ return AfxMessageBox("このメッセージボックスはDLL内の関数から呼び出されています");
    }
    --------------------------------------------------------------------------
記事No.7099 のレス /0過去ログ7より / 関連記事表示
削除チェック/

■7147  Re[2]: ListViewColumnHeaderにソートの三角を出すには?
□投稿者/ 一羽 -(2006/10/03(Tue) 21:38:30)

    分類:[C#] 

    上手く投稿できなかったようなので、再度投稿します。もし、被ったらごめんなさい。


    すばやいレスポンスありがとうございました。

    No7120に返信(まどかさんの記事)
    > #VC++はわかりませんし、HDF_SORTDOWNのようなメッセージも今探したら見つけることができませんでした。
    説明不足で申し訳ありません。
    VC++(MFC)のListViewコントロールでは、HDITEMという構造体が用意されていて、この構造体を使用してColumnHeaderのフォーマットを指定することができます。HDF_SORTDOWNは、その指定できる定数の1つです。

    こんな感じです。
    ----------------------------------
    HDITEM headerItem;
    headerItem.mask = HDI_FORMAT;
    headerItem.fmt = HDF_SORTDOWN | HDF_STRING; // 下三角と文字列を表示するフォーマットを指定
    pHeader->SetItem(_sortTargetColumn, &headerItem); // pHeaderはListViewのColumnHeaderコントロール
    ----------------------------------

    >>あの三角は、.NET Frameworks 2.0では未だ提供されていないのでしょうか?
    > ありません。
    残念……orz
    しかし、すっきりしました。ありがとうございます。
    あの三角に時間をかけることが許される状況でないので、きっぱり諦めます。

    > #他のリストビューで見かけたこともありませんし。
    上記のフォーマット指定でソートの三角(HDF_SORTDOWN/HDF_SORTUP)が指定できるようになったのがWindows XPからなので、未だ使用しているアプリケーションが少ないのかもしれません。
    しかし、サンプルコードはWeb上に一杯あるので、他の言語でも使用できるようになってくれると良いなぁと私は思います。うわさの.NET 3.0に期待を……(^^;

    どうもありがとうございました。
記事No.7115 のレス / END /過去ログ7より / 関連記事表示
削除チェック/

■7104  C++のDLLからVBで値を受け取るには?
□投稿者/ シープラ -(2006/10/03(Tue) 14:33:16)

    分類:[VC++(C++/CLI)] 


    分類:[VC++(C++/CLI)] 


    動作環境
    Visual C++ (Visual Studio 2005)
    VB6.0 SP5
    WinXp

    C++でCOMを作成しました。
    それをVBから呼び出し文字列もしくは数値を受け取りたいのですが
    どうしても文字列が空で参照できません。

    C++側
    -------------------------------------------------------------------------------------------------
    宣言部分
    [id(5), helpstring("メソッド get_test")] HRESULT get_test([in] BSTR str, [out] BSTR* strout);

    処理部分
    STDMETHODIMP Caaa::get_test(BSTR str, BSTR* strout)
    {
    CComBSTR testBstr("あいうえお");
    BSTR bstr = testBstr; // bstrにはあいうえおが格納されている

    CAtlString aaa;

    aaa = (WCHAR*)str;

    MessageBox(NULL,spBstr,aaa,0); // あいうえおが表示される
    MessageBox(NULL,bstr,aaa,0); // あいうえおが表示される

    strout = &bstr; // out引数に"あいうえお"のアドレス格納
    // これがVB側で参照できればいい。

    return S_OK;
    }

    vb側
    -------------------------------------------------------------------------------------------------

    Private Sub Command3_Click()
    On Error GoTo Err_Command3_Click
    Dim fff As aaa

    Dim str1 As String
    Dim str2 As String

    str1 = "わたった" ' この文字がC++に渡っているのは確認済

    Set fff = CreateObject("ttt.aaa.1")
    fff.get_test str1, str2 'C++メソッド実行

    MsgBox (str2) ' str2が空になっており参照できない


    Set fff = Nothing
    Exit Sub

    End Sub


    この方法でVB側に"あいうえお"の文字が渡ってこないのはなぜでしょうか?
    色々と試しているのですが、str2は参照渡しで渡ってこないのでしょうか?
    それとも根本的に何か間違っているのか、よくわからない状態になってしまいました。

    助言いただけたら幸いです。
    宜しくお願いします。

親記事 /0過去ログ7より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >>

ヒット件数が多いので過去ログ1〜20 までの検索結果 / 過去ログ21からさらに検索→

パスワード/

- Child Tree -