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

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

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

全過去ログを検索

<< 0 >>
■11973  LGPL及びMPL1.1に関して
□投稿者/ まぐねしうむ -(2007/12/26(Wed) 13:48:55)

    分類:[.NET 全般] 

    LGPL及びMPL1.1に関して教えてください。
    商用販売を目的としてあるプログラムを作成しております。
    処理の内容としてはiTextSharpを利用してある処理の結果をユーザに見せております。
    (iTextSharp自体には改変を行っておらず、EXEからiTextを呼び出しています。)

    そこで、教えて頂きたいのですが今回のケースだと製作したプログラムは
    MPL1.1であればライセンス対象にならないと考えております。
    今回ライセンス関連を初めて調べており自信はないですがこの考えは正しいのでしょうか?
     
    iTextSharpのライセンスは
     GNU Library or Lesser General Public License (LGPL),
     Mozilla Public License 1.1 (MPL 1.1)
    です。

    ◆参考にしたHP
    LGPL  http://www.antenna.co.jp/Xml/xmllist/OSS/OpenSource.htm#a000246
    MPL1.1 http://www.antenna.co.jp/Xml/xmllist/OSS/OpenSource.htm#a000249

    LGPL  :上記HPの 契約書第5節の
          (1)結合 『ライブラリ』と共に動作するようデザインされているプログラムは、「『ライブラリ』を利用する著作物」
          (2)リンク「『ライブラリ』を利用する著作物」に『ライブラリ』をリンクして実行形式を作成すると、『ライブラリ』の派生物
           (1)と(2)の違いが分かりません・・・。
           ただ、(2)の『ライブラリ』にリンクして実行形式を作成しているのでコレに当てはまる?

          (3)の「LGPLライブラリーを静的にリンク」とはどういった状態を示すのでしょうか?
           また、アクセス機構または小さなマクロや小さなインライン関数(10行以下)ならば問題無いとの事ですが、
           ココで言うアクセス機構とはどういった物を示すのでしょうか?メソッドを使うのもアクセス機構?
            
    難しすぎです・・・。
    意味が分かりません・・・。

    MPL1.1 :MPLの対象のプログラムを変更した場合はMPLに従う。
          プログラムの結合は対象外。
          よって、今回は変更していないので問題ない?

    ◆オリジナルの日本語訳
    LGPL  http://www.opensource.jp/lesser/lgpl.ja.html
    MPL1.1 http://www.mozilla-japan.org/MPL/MPL-1.1J.html
親記事 /過去ログ26より / 関連記事表示
削除チェック/

■44284  GetHdcの開放について
□投稿者/ 左 -(2009/12/04(Fri) 03:20:54)

    分類:[.NET 全般] 

    前の質問ではお世話になりました
    現在Bitbltをしての画像操作を行っているのですが

    for分で取得と開放を繰り返し行っているのですが
    ある程度繰り返すと
    ['System.ArgumentException' のハンドルされていない例外が System.Drawing.dll で発生しました。]
    といったようなエラーがでてしまいます

    bitmapを生成するだけならエラーは出ないので
    なにか開放していないのかなと思っているのですが・・・

    なにか問題があれば教えていただけないでしょうか


    for(int i = 0; i < 5; i++){
    for(int j = 0; j < 5; j++){
    for(int z = 0; z < 5; z++){

    bitmapMainEditor[i, j, z] = new Bitmap(1920, 1920, PixelFormat.Format16bppRgb555);
    g1 = Graphics.FromImage(bitmapMainEditor[i, j, z]); // 加工画像

    hdc1 = g1.GetHdc();

    //ここらへんでBitbltの処理

    g1.ReleaseHdc(hdc1);
    g1.Dispose();
    }
    }
    }
親記事 /過去ログ75より / 関連記事表示
削除チェック/

■45711  Re[6]: 読書量は?
□投稿者/ .SHO -(2010/01/19(Tue) 10:27:34)
    最近は、ほとんど読まなくなりましたね。

    ただ、年1冊のペースで海外技術文書の日本語版出版のための
    翻訳をするので、その1冊に関しては徹底的に読みますが。
    (ときには著者と内容について議論することも…)
記事No.45665 のレス /過去ログ77より / 関連記事表示
削除チェック/

■54178  画像データからバイト配列
□投稿者/ SUKIYA -(2010/10/07(Thu) 19:06:26)

    分類:[.NET 全般] 

    次の方法でデスクトップ画像をバイト配列にしようとしているのですが、うまくいきません。
    どなたかご教授願えますでしょうか。

    Bitmap bmp = new Bitmap(myRectangle.Width, myRectangle.Height, PixelFormat.Format24bppRgb);
    using (Graphics g = Graphics.FromImage(bmp))
    {
    g.CopyFromScreen(myRectangle.X, myRectangle.Y, 0, 0, myRectangle.Size, CopyPixelOperation.SourceCopy);
    g.InterpolationMode = InterpolationMode.Default;
    }

    このあと、変数bmpをバイト配列に変換してpixelsへ代入しようとしています。

    BitmapData bitd = bmp.LockBits(new Rectangle(0, 0, bmp.Width, bmp.Height), ImageLockMode.ReadWrite, PixelFormat.Format24bppRgb);
    IntPtr scan0 = bitd.Scan0;

    byte[] pixels = new byte[bitd.Height * bitd.Width];
    Marshal.Copy(scan0, pixels, 0, pixels.Length);
    bmp.UnlockBits(bitd);

    pixelsにデータは入っているのですが、検証するために、一度Bitmapオブジェクトに戻したでさらにBitmap形式で保存して画像を参照すると
    予期しない絵になっています。(正しくはデスクトップ画像が表示されるはずです)


    宜しくお願い致します。
親記事 /過去ログ91より / 関連記事表示
削除チェック/

■82242  Re[2]: システムの自動ONOFF
□投稿者/ sa -(2016/12/21(Wed) 11:14:05)
    No82240 (魔界の仮面弁士 さん) に返信

    お答えて頂きありがとうございます。

    Application.SetSuspendState メソッドのが
    簡単なんですが、使用しているPCが古いため
    旧式を実装しました笑

    あー詳細までみたいないです!!
    そうですね、解除すればいいんですね。。
    ありがとうございます

    あとはログオン時にPass要求がかかるため
    それを解除できるかですが

    何か方法とかありませんでしょうか??
記事No.82239 のレス /過去ログ140より / 関連記事表示
削除チェック/

■86445  Re[2]: 空の delegate は null なの?
□投稿者/ 774RR -(2018/01/29(Mon) 19:06:38)
    おお non-static メンバ関数ではなくて static メンバ関数の syntax sugar だったわけですか・・・
    C++ では += が static メンバにはなりえないのでそういう認識でいました。
    違う言語を同一視するような時点でかなりアレなんですがなるほどです。
    # += が Combine の糖衣構文であるとはどこに書いてあるんだろう・・・探す気力なし

    this が必須のような構文をしておいて実は static っつーのはずいぶん罪作りな糖衣構文っすね。
    オイラもきっちり調べればこういう質問は出なかったのかもしれませんが調べきれませんでした。
    # C/C++ なら言語仕様書でも ReferenceSource でも調べたのですが
    # C# は本業ではないのでと逃げておく。

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

■86453  Re[3]: 空の delegate は null なの?
□投稿者/ 魔界の仮面弁士 -(2018/01/30(Tue) 18:27:56)
    No86407 (774RR さん) に返信
    > そういやオイラ event ハンドラにはいつも「何もしない」ハンドラを割り振ってますな。

    それって、イベントを提供する側の話でしょうか。
    それとも、イベントを利用する側の話でしょうか。
     button1.Click += delegate {}

    いずれにしても、EventHandler や EventHandler<TEventArgs> に限った話ですよね。

    C# では、戻り値を返すイベントを定義できますが、
    この場合、「何もしない ハンドラ」を割り当てるわけには行かないはず。
     public delegate bool FooDelegate(int x);
     public event FooDelegate Foo;


    一方 VB.NET の場合、『戻り値を持ったイベント』を定義しようとすると
    Visual Basic ではコンパイルエラー(BC31084)となる仕様です。
    定義済みのものを利用する分には、VB6 でも VB.NET でも可能なのですが。


    実際のところ、複数のメソッド呼び出しを束ねるのはイベントの場合ぐらいで、
    ましてや戻り値を持つメソッドを連結させることは非常に稀だとは思いますが、
    もしも個々の戻り値を個別に受け取る必要がある場合は、そのデリゲートの
    GetInvocationList メソッドを利用できるようになっています。



    > // メンバ宣言して new してない段階では d は null なのは納得

    未初期化のローカル変数 d に対しては
     d = Method1;
    は実行できても、
     d += Method1;
    はコンパイルエラーになりますね(CS0165)。当然のことではありますが。



    No86445 (774RR さん) に返信
    > おお non-static メンバ関数ではなくて static メンバ関数の syntax sugar だったわけですか・・・

    ちなみにデリゲートは、インスタンスメソッドの呼び出しに最適化されているため、
    静的メソッドの呼び出しだと、効率がかなり悪いそうです。
    これについて、カリー化(curried delegate)で回避できます。
    http://ufcpp.net/study/csharp/functional/miscdelegateinternal/


    > C++ では += が static メンバにはなりえないのでそういう認識でいました。
    > this が必須のような構文をしておいて実は static っつーのはずいぶん罪作りな糖衣構文っすね。

    delegate 以外でも、
     string s = null;
     s += null;
    と書けますけれどね。しかも上記の結果は、null ではなく string.Empty です。

    # 上記は『s = System.String.Concat(null, null);』相当


    > # += が Combine の糖衣構文であるとはどこに書いてあるんだろう・・・探す気力なし

    同じ意味になると、大昔に TechEd あたりで聞いたような気がするのですが、
    済みません、私もうろ覚えなので情報ソースは提示できないです。

    公式資料として書いたものがあるかどうかまでは分からないので、
    糖衣構文と呼べるかどうかは自信がなくなってきました。今更ですが。


    ただ言語仕様面で捉えてみると、+= が Combine というよりは、
    「a += b」が「a = a + b;」の糖衣構文と捉えた方が良いかと思っています。

    「変数 a」の型が、「a + b」の演算が返す型と同じ(あるいは暗黙変換可能)でない場合、
    a += b; はコンパイルエラーとなります。

    // これはエラー
    int a = 0;
    a += 0L;

    // これは OK
    float b = 0F;
    b += 0L;


    ただしデリゲートが event 化されている場合は話が変わってきます。

    イベントは特別扱いされており、デリゲート型変数とは違って、
    演算子として += と -= しか使えません。(デリゲートなら + や - や = も使える)
    しかも代入式の左辺にしか記述できないという制限付き。

    この制限があるため、匿名メソッドやラムダ式を、
     button2.Click += delegate { MessageBox.Show("Test"); };
    のように、変数を介さずにイベントハンドラとして直接割り当ててしまうと、
    後で解除あるいはクリアできずに難儀することになりますね。


    ちなみに上記の += 処理は、
     button2.add_Click(new EventHandler(delegate { MessageBox.Show("Test"); }));
    相当の処理としてコンパイルされます。

    といっても、C# からの add_Click メソッドの呼び出しは禁止されているのですけれども。
    (JScript.NET や PowerShell の場合は、add_Click メソッドを使って割り当てます)
記事No.86407 のレス / END /過去ログ148より / 関連記事表示
削除チェック/

■95013  Re[1]: WPFのコンボボックスがタッチアップに反応しない時がある
□投稿者/ simano -(2020/06/11(Thu) 17:34:15)
    マウス使用時には発生せず、タッチ時には発生することから、ライブラリレベルの不具合かも?と考えました。
    また、この問題が発生する時、PreviewMouseUpイベントは発生せずに、PreviewStylusUpイベントだけが発生することを確認しました。
    
    このため、対処療法的ですが、下記の方法で解決としました。
    
    コンボボックス内のDataTemplateに定義したLabelのPreviewStylusUpイベントを補足して、
    内部的にコンボボックスのアイテムを選択します。
    
    ---
        private void Label_PreviewStylusUp(object sender, StylusEventArgs e)
            {
          // コンボボックス内のDataTemplateに定義したLabelのPreviewStylusUpイベントを補足する。
                // 内部的にコンボボックスを選択する。
                SelectComboBoxLabel(combo, (DependencyObject)e.OriginalSource);
            }
    
            private static void SelectComboBoxLabel(ComboBox combo, DependencyObject dep)
            {
                while ((dep != null) && !(dep is Label))
                {
                    dep = VisualTreeHelper.GetParent(dep);
                }
                if (dep == null) return;
    
                if (dep is Label)
                {
                    Label lbl = dep as Label;
                    lbl.Focus();
    
                    combo.SelectedItem = lbl.DataContext;
                }
    
          // 開いたコンボボックスを閉じる。
                CloseComboBox(combo);
            }
    
            private static void CloseComboBox(ComboBox combo)
            {
                if (combo.IsDropDownOpen)
                {
                    combo.IsDropDownOpen = false;
                    var binding = combo.GetBindingExpression(ComboBox.SelectedItemProperty);
    
                    if (binding != null)
                    {
                        binding.UpdateSource();
                        binding.UpdateTarget();
                    }
                }
            }
    
    
記事No.94784 のレス / END /過去ログ164より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -