DOBON.NETプログラミング道掲示板

■ 「新規作成」から投稿できます。
■ マルチポストされた投稿を見つけたときは、その投稿に返信することによりご報告ください。その際は匿名で投稿し、マルチポストされている場所を併記してください。
■ スパム対策のため、メールアドレスの先頭に"_"という文字が付加されています。
RSS 2.0 RSS 2.0 | RSS 0.91 | 携帯電話用 | 自分専用のアイコンを使用するには | 掲示板への要望 | 管理人に連絡 | お気楽掲示板
■ 24時間以内に作成されたスレッドは New で表示されます。
■ 24時間以内に更新されたスレッドは UpDate で表示されます。

記事リスト ( )内の数字はレス数
Newtarget="_blank"で開いたページの閉じる処理(window.close())が動かない(0) | Nomal正規表現で株価を取得したい(1) | Nomal親スレッドへ処理の移譲(7) | Nomalデザイナで編集・チェックアウトキャンセルすると(3) | NomalVB.NETで作成したDLLをVB6.0から呼び出す(3) | NomalVB.NETからRDゲートウェイを利用したリモートデスクトップ接続(4) | NomalクラスによるGetBytes関数のエンディアンの違い(2) | Nomal.Net 5.0 におけるServiceControllerの代替クラス(3) | Nomal[VB.NET]Excelのプロセスが終了しない(2) | NomalC#をVBに変換した際の強制的な参照渡し(2) | Nomal新たにshowしたフォームでのボタンのクリック(5) | Nomalリッチテキストボックスの文字を太文字にしたい(2) | NomalVB.netにおける固定長出力方法(3) | NomalDataObjectの使いまわし(5) | NomalLIstview のDataSource(2) | NomalClassの作り方(2) | NomalOpenFileDialogの初期ファイル名の表示が変(1) | NomalVB.NETのVBA化(2) | Nomal改行のコード(7) | NomalGoogle翻訳の結果の取得(2) | NomalStopwatchクラスのElapsedMillisecondsの挙動(2) | Nomal.net Chartで二重ドーナツグラフの作り方(3) | Nomalexeをショートカットから起動した場合のエラー(2) | Nomalデスクトップ と Desktop(6) | Nomalデザイナのプロパティウィンドウで静的プロパティを選択したい(3) | NomalPHPでシリアライズした、データをデシリアライズしたい(4) | Nomal二次元配列 インデックスが配列の境界外(2) | NomalVB.netで作成したexeのNgenによる弊害(1) | NomalDrawBezierの使い方について(7) | Nomalメジャーバージョンの異なるLog4netライブラリを参照したい(4) | NomalVB6→2005変換時のDeclare宣言のマーシャリング属性(8) | NomalGROUPBOXの複製について(vb.net)(1) | NomalActiveReports 3.0からActiveReports 7.0へのァイルコンバータについて(4) | NomalAccess OLEでExecuteNonQuery(3) | NomalKeyDownでの右コントロールキーイベント(2) | NomalExcel複数シートの印刷順序(3) | NomalWMPへno(3) | NomalDataGridViewの行番号(7) | Nomalapp.config定義によるネットワークトレースログの世代管理(2) | Nomalrelease/debugのどちらで作成されたものかを判断する方法(2) | NomalC#コンソールアプリでタイピング練習ソフト作成(3) | Nomal自分自身を呼び出すのはOKですか(1) | NomalWebBrowser Control foreachで値が消える(2) | NomalDeclare宣言するdllと参照追加をするdllの区別(4) | NomalTaskクラスを.NET Framework 2.0で実現させる方法(2) | NomalVS2017で作成されたDLLをVS2005で作成されたAPで使用する方法(4) | NomalWebBrowser Controlを使って、任意の値を取得(5) | NomalEditボックスに簡体字をセットする方法(2) | NomalList型でエラーが起きてしまい・・・(1) | Nomalフォルダ内の全ての容量を取得したい(4) | NomalWebClientが上手く動かない(2) | Nomal共変性と反変性ってこういうこと?(4) | Nomalモードレスフォーム Warning IDE0067を回避したい(7) | NomalLINQの拡張メソッドの定義(1) | Nomalこんな演算子初めて見ました。(5) | Nomalプロセスからウインドウを取得(4) | Nomalフォーム外のカーソルの変更(2) | NomalLINQのメソッド構文の書き方(3) | NomalVB.NETでCSVを読み込む際にSQL文を使いたい(3) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(2) | NomalRichTextBoxで入力文字の自動折り返しを止めたい(5) | Nomalラムダ式の勉強中(2) | NomalWebClientで、短期間にDownloadStringAsyncを実行したい(2) | Nomalvb.net+SQLiteで複数データベースファイルへのトランザクション方法(3) | NomalNewの使い方間違ってますか?(4) | Nomalジェネリック型インターフェースを使った変数を扱いたい(3) | NomalC#をVBに変換(2) | NomalProcess.WaitForExitで正常に動作しない?(3) | NomalCatch時のex.StackTraceの情報(3) | Nomalユーザーコントロール内のテキストボックスのmodifiedプロパティ(4) | NomalPictureBox.Locationのキャンセル(3) | NomalJOIN操作の構文エラー(4) | NomalVisualStudioでマクロ(3) | NomalVisualStudioでExcelのVSTO開発(3) | NomalOracleDataAccess を参照したプログラムでデバッグモードが機能しなくなる(3) | NomalIE11では表示されるが、.netのWebBrowserでは、表示されないHPを表示する方法(7) | NomalマウスのないOSでマウスカーソルの表示(2) | NomalRDP接続でのネットワーク帯域制限(0) | NomalFILE.COPYでIOExceptionエラーが出る(11) | NomalToolStripMenuItemにShortcutKeysを指定した際の、元のコントロールを取得する方法(2) | Nomal動的にプロパティや変数の値の取得(4) | NomalVB6 ほかのアプリケーションを起動し そのアプリケーションは終了させる方法(4) | NomalMouseEventArgsのカレント座標(2) | Nomalリッチテキストボックスでの字間の調整(2) | NomalDrawImage でメモリ不足エラー(3) | Nomal必須コンポーネントの一覧に追加したい(0) | NomalCode128でバーコードが読み取れない(8) | NomalあるWindows10PCでビルドしたEXEがW8.1以下で実行エラー(5) | NomalApp.configのMy.Application.Log設定で使用できない属性が出る(0) | NomalVC++ → VB.Netに変換時に文法エラー(2) | Nomalvb2010を使用したmicrosoft Wordの任意の行の削除(0) | NomalVb.netからAccessへの接続について(3) | NomalSQL-Server Compact 4.0が表示されない(2) | Nomalバーコードの数字を非表示にしたい(2) | Nomal令和の日付への対応(3) | Nomalスクロールバーが出た時に高さを変えたい(4) | Nomal自作したアプリの発行元を明記したい(2) | NomalHTTP 417エラーを発生させるためのIIS設定はどうすればよいか(3) | Nomal起動ディスプレイの指定方法について(6) | NomalSystem.Threading.Thread.Sleep()と変数(2) |



■記事リスト / ▼下のスレッド
■34529 / 親記事)  PHPでシリアライズした、データをデシリアライズしたい
□投稿者/ シルビア大好き 一般人(1回)-(2020/09/14(Mon) 17:01:14)
  • アイコン環境/言語:[VB.net .NET Framework 3.5] 
    分類:[.NET] 

    PHPでシリアライズしたデータを
    .netにてデシリアライズしたいのですが、
    参考になるようなページが見つからないです。

    jsonフォーマットではありません。
    a:1:{s1:10:"2020-10-01";
    のフォーマットとなります。

    データはテキスト形式ですが、それをデシリアライズしたいと考えております。
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34530 / ResNo.1)  Re[1]: PHPでシリアライズした、データをデシリアライズしたい
□投稿者/ 魔界の仮面弁士 大御所(1295回)-(2020/09/15(Tue) 11:50:44)
  • アイコンNo34529に返信(シルビア大好きさんの記事)
    > a:1:{s1:10:"2020-10-01";
    > のフォーマットとなります。

    a:1 という事から、要素数 1 の配列のように見受けられますが、
    提示されたフォーマットだと、unserialize できないのではありませんか?

    PHP は触ったことが無いので良く知らないのですが、
     serialize( array( '2020-10-01' ) );
    とも違うようですし。


    『a:1:{s1:10:"2020-10-01";』ではなく、
    『a:1:{i:0;s:10:"2020-10-01";}』とかで良ければ、こんなのとか。

    /// <seealso cref="https://gist.github.com/xiangwan/1225981/1f6d12679fe510ff241468561e0f80fa757f8db4"/>
    static void Main()
    {
     var text = "a:1:{i:0;s:10:\"2020-10-01\";}";
     dynamic contents = new Serializer().Deserialize(text);
    }
違反を報告
引用返信
■34531 / ResNo.2)  Re[2]: PHPでシリアライズした、データをデシリアライズしたい
□投稿者/ 魔界の仮面弁士 大御所(1296回)-(2020/09/15(Tue) 11:55:12)
  • アイコンNo34530に追記(魔界の仮面弁士の記事)
    > /// <seealso cref="https://gist.github.com/xiangwan/1225981/1f6d12679fe510ff241468561e0f80fa757f8db4"/>

    おっと、VB でしたか。

    上記の C# クラスを VB に翻訳して使うか、
    C# で DLL を作って、それを VB から参照設定してみてください。
違反を報告
引用返信
■34532 / ResNo.3)  Re[3]: PHPでシリアライズした、データをデシリアライズしたい
□投稿者/ 魔界の仮面弁士 大御所(1297回)-(2020/09/15(Tue) 13:26:19)
  • アイコンNo34531に返信(魔界の仮面弁士さんの記事)
    >>> a:1:{s1:10:"2020-10-01";
    > 上記の C# クラスを VB に翻訳して使うか、
    > C# で DLL を作って、それを VB から参照設定してみてください。

    別案。検索してみたらこんなのを見つけました。
    http://vbcity.com/forums/t/166368.aspx


    8/16/2012 7:06 AM の発言で紹介されている
    PHPSerializationLibrary.dll を参照設定に加えて、こんな感じです。

    PHP 本家の実装ほどには、厳密に検査していないようですので、
    最初の質問にあったフォーマットであっても、
    エラー無くデシリアライズされてしまうようです。

    Dim php As New Conversive.PHPSerializationLibrary.Serializer()
    Dim contents1 = php.Deserialize("a:1:{i:0;s:10:""2020-10-01"";}")
    Dim contents2 = php.Deserialize("a:1:{s1:10:""2020-10-01"";")
    Dim contents3 = php.Deserialize("a:1:{s:10:""2020-10-01"";")
    Dim contents4 = php.Deserialize("a:1:{s:10:""2020-10-01"";}")


    なお、上記の結果は下記と同様です。

    Dim contents1 As Object = New ArrayList() From {"2020-10-01"}
    Dim contents2 As Object = New Hashtable() From {{"2020-10-01", ""}}
    Dim contents3 As Object = New Hashtable() From {{"2020-10-01", New Object()}}
    Dim contents4 As Object = New Hashtable() From {{"2020-10-01", New Object()}}
違反を報告
引用返信
■34535 / ResNo.4)  Re[4]: PHPでシリアライズした、データをデシリアライズしたい
□投稿者/ シルビア大好き 一般人(3回)-(2020/09/16(Wed) 14:49:33)
  • アイコン> 魔界の仮面弁士さん
    回答いただき、ありがとうございます。
    最初にいただいた、回答に記載のURLにある
    C#のコードを.netに合わせて作ってみたところ、
    ハッシュテーブルとして、変数に設定することが出来ました。

    あとは、データをどのように扱うべきか検討する必要がありますが、
    そこから先は、自身で考えるべき内容なので、頑張ります。

    大変助かりました。
    ありがとうございます。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34526 / 親記事)  二次元配列 インデックスが配列の境界外
□投稿者/ タサケン 一般人(1回)-(2020/09/02(Wed) 23:17:44)
  • アイコン環境/言語:[環境:Windows 10 64bit 使用言語:C# .NET Frameworkのバージョン:4.7.2] 
    分類:[.NET] 

    以下のようにプログラムしてデバッグしたら
    インデックスが配列の境界外です
    と出てしまいますどうすればいいか教えてください

          int[,] array = new int[5, 5];

    int y = array.GetLength(0);
    int timesx = 1;
    int counter = 0;
    int counter2 = 0;
    int number2 = 0;
    if(array.GetLength(1)%2==0)
    {
    number2 = 1;
    }

    for (int number = 1; number <= array.Length; number++)
    {
    for (int x = array.GetLength(1) - 1; x >= number2; x--)
    {
    counter++;

    if (counter % 2 == 1)
    {
    timesx = y * 2 - 1;
    }
    if (x == 0)
    {
    timesx = y - 1;
    }
    while (timesx > 0)
    {
    if (counter % 2 == 0)
    {
    x = -x;
    y = -(y - 1);
    }
    else
    {
    counter2++;
    if (counter2 % 2 == 1)
    {
    y = 0;
    }
    else
    {
    x = -x;
    y = 1;
    }
    if (x == 0)
    {
    y = 1;
    }
    }
    array[x, y] = number;
    if (x < 0)
    {
    x = -x;
    }
    y = array.GetLength(0);
    timesx--;
    }
    counter2 = 0;
    timesx = 1;

    }
    }
違反を報告
引用返信

▽[全レス2件(ResNo.1-2 表示)]
■34527 / ResNo.1)  Re[1]: 二次元配列 インデックスが配列の境界外
□投稿者/ Hongliang 大御所(585回)-(2020/09/03(Thu) 08:59:04)
  • アイコン
    例えばこの部分
    array[x, y] = number;
    if (x < 0)
    {
        x = -x;
    }
    配列の添え字が負になることはないのですから、
    xを添え字に使った後で負かどうか判定するというのは
    ロジックとしておかしいですね。
    
    まあ何がどうなるのが正解かを知らないので、
    「どうすればいいか」は私には答えられませんが。

違反を報告
引用返信
■34528 / ResNo.2)  Re[1]: 二次元配列 インデックスが配列の境界外
□投稿者/ 魔界の仮面弁士 大御所(1293回)-(2020/09/03(Thu) 08:59:35)
  • アイコンNo34526に返信(タサケンさんの記事)
    > int[,] array = new int[5, 5];
    上記により、5×5 すなわち 25要素の配列が確保されますね。
    それぞれの添字は 0〜4 の範囲となります。

     [0,0], [1,0], [2,0], [3,0], [4,0],
     [0,1], [1,1], [2,1], [3,1], [4,1],
     [0,2], [1,2], [2,2], [3,2], [4,2],
     [0,3], [1,3], [2,3], [3,3], [4,3],
     [0,4], [1,4], [2,4], [3,4], [4,4]


    > インデックスが配列の境界外です
    > と出てしまいます

    array 配列に渡している添字が
    「0≦x≦4」かつ「0≦y≦4」になっていないからです。


    > array[x, y] = number;
    に至るまでの処理を良く見直してみてください。

    最初にこの行に来た段階では、
     「x = 4」「y = 0」、「number = 0」
    となるので、問題無く代入できます。

    しかし 2 回目にここに来た時には、
     「x = -1」「y = 1」、「number = 1」
    となっているわけですから、array[x, y] へのアクセスが
    IndexOutRangeException を誘発するのは当然のことです。


    > どうすればいいか教えてください

    コードを修正してください。

    エラーが出ないようするだけなら、添字が範囲外の時には
    配列を読み書きしないようにすればエラーは出なくなります。

    しかしそれが期待する動作であるかは別問題です。
    そもそも x や y が範囲外になってしまうことが問題というのであれば、
    そこに至るまでの処理を見直す必要があるでしょう。


    いずれにせよ、x や y の取るべき範囲は 0〜4 に限られますが、
    まずはループ範囲の確認からですね。


    > for (int number = 1; number <= array.Length; number++)
    の処理は、number が 1〜25 という範囲を紡ぐことを意味します。

    > for (int x = array.GetLength(1) - 1; x >= number2; x--)
    number2 は 0 か 1 のいずれかになる想定であり、
    今回の場合は number2 が 0 と割り当てられています。
    そのため上記ループは、x が 4〜0 という範囲をとることになります。


    問題は、その x ループ内で、
    何度か「x = -x;」という表現が登場していることです。


    x が取りうる範囲は 0〜4 なのですから、正負符号を反転させることに
    合理性があるとは思えません。

    ましてや、変数 x は for のループカウンターにもなっているわけですから、
    ループ途中でカウンタの値を変更してしまうと、ループ回数の判定が
    分かりにくくなります。


    そもそもこの一連の処理で、何をさせたいのでしょうか?
    一連のコードで何を行おうとしているのか、
    処理の「意図」あるいは「目的」を知っているのは
    コードを組んだ御本人だけです。

    あるいはコードの各処理の意味を説明して頂ければ、
    第三者でも問題点を指摘できるかもしれません。
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-2]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34521 / 親記事)  VB.netで作成したexeのNgenによる弊害
□投稿者/ 金ちゃん 一般人(1回)-(2020/08/05(Wed) 15:41:37)
  • アイコン環境/言語:[VB.net Oracle ODP.net] 
    分類:[.NET] 


    お世話になっております。金ちゃんと申します。

    今回VB6からVB.netにマイグレーションを行いました。
    DBはOracleでVB.netからはODP経由でDB接続していますが、
    何故かコンパイルしたexe(3Mぐらいのサイズ)にNgenをかけるとDB接続だけで1.5秒ぐらいかかってしまいます。
    逆にNgenをかけなければ0.5秒ぐらいでDB接続出来ます。
    Ngenする事でNgenなしの場合と比べて性能が劣化するパターンがあるのでしょうか?
    ※exe起動直後にDBからデータを取得しパブリック変数に値の格納をする場合にも同じような症状が発生してます。

    漠然とした質問で申し訳ありませんが、藁にもすがりたい状態で困ってます。

    よろしくお願いします。
違反を報告
引用返信

▽[全レス1件(ResNo.1-1 表示)]
■34522 / ResNo.1)  【報告】この投稿はマルチポストです
□投稿者/ (報告) 大御所(275回)-(2020/08/05(Wed) 22:45:17)
  • アイコンこの投稿はマルチポストです。もし元記事の投稿者にマルチポストの心当たりがない場合は、すぐに返信でお知らせください。

    ●マルチポストされている場所
    http://bbs.wankuma.com/index.cgi?mode=al2&namber=95477

    ----------
    この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのルールについて」をお読みください。

    ●書き込みのルールについて
    https://dobon.net/vb/bbs/index.html
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-1]



■記事リスト / ▼下のスレッド / ▲上のスレッド
■34510 / 親記事)  DrawBezierの使い方について
□投稿者/ つばさ 一般人(1回)-(2020/07/31(Fri) 17:38:42)
  • アイコン環境/言語:[Win10 VB2017] 
    分類:[.NET] 

     はじめまして、よろしくお願いします。
    Win10でVB2017を使用しています。

    現在、ベジェ曲線をPivtureBox表示に挑戦しています。

    Dim Bezier_1 As New Point(66, 663)
    Dim Bezier_2 As New Point(96, 784)
    Dim Bezier_3 As New Point(96, 784)
    Dim Bezier_4 As New Point(236, 731)

    g.DrawBezier(Pen_Red, Bezier_1, Bezier_2, Bezier_3, Bezier_4)

    と、記述した時の描画が、添付画像になります。
    赤色ラインがVB出力ですが、実際のイラストレーターのライン(黒色ライン)と
    かなり違った結果になります。

    始点終点、制御点が2点の時は問題ないのですが
    制御点が1点の時の3点ベジェ曲線の時にこうなります。

    3点ベジェ曲線の記述方法のアドバイスを頂けたら嬉しいのですが
    よろしくお願いします。(うまく説明できてないと思いますが、すみません。)

191×140
イメージ
2020-07-31.jpg
/17KB
違反を報告
引用返信

▽[全レス7件(ResNo.3-7 表示)]
■34515 / ResNo.3)  Re[3]: DrawBezierの使い方について
□投稿者/ 魔界の仮面弁士 大御所(1290回)-(2020/08/02(Sun) 16:55:03)
  • アイコン
    No34514に返信(つばささんの記事)
    > 3点ベジェの曲線を表示するのは、座標計算をしなければ
    > 思ったような曲線は、得られないようですね。
    
    …あれ?
    
    質問内容は「DrawBezier メソッドの使い方について」であって、
    黒色ラインを描く方法についてでは無いと思ったのですが。
    
    
    曲線の細かい話については、この辺りに書かれていますが、それはさておき。
    http://www.f.waseda.jp/moriya/PUBLIC_HTML/education/classes/infomath6/applet/fractal/spline/
    
    2 次ベジエを 3 次ベジエに変換したいのであれば、2次における
    「始点〜制御点までの 2/3 の位置」と
    「終点〜制御点までの 2/3 の位置」を
    3 次の第一制御点・第二制御点として指定してみてください。
    
    
    > 実際のイラストレーターのライン(黒色ライン)と
    イラストレーター(Illustrator?)を見たことが無いので
    黒色ラインが 2 次ベジエであるという、
    当方の予想が正しいのかは分かりません。
    そちらの仕様確認はご自身で行ってください。
    
    
    
    Module GraphicsExtension
      <System.Runtime.CompilerServices.Extension>
      Public Sub DrawQuadCurve(this As Graphics, pen As Pen, pt1 As PointF, pt2 As PointF, pt3 As PointF)
        Dim p1 As New PointF((pt1.X + 2.0F * pt2.X) / 3.0F, (pt1.Y + 2.0F * pt2.Y) / 3.0F)
        Dim p2 As New PointF((2.0F * pt2.X + pt3.X) / 3.0F, (2.0F * pt2.Y + pt3.Y) / 3.0F)
        this.DrawBezier(pen, pt1, p1, p2, pt3)
      End Sub
    End Module
    
    
    とりあえず上記を貼り付けたうえで、先の
     .DrawBezier(bezierPen, points(0), points(1), points(1), points(2))
    の結果を
     .DrawQuadCurve(bezierPen, points(0), points(1), points(2))
    と比較してみてください。

違反を報告
引用返信
■34516 / ResNo.4)  Re[4]: DrawBezierの使い方について
□投稿者/ つばさ 一般人(3回)-(2020/08/03(Mon) 08:14:24)
  • アイコン説明不足にも関わらづ、追加の解説ありがとうございます。
    最初の投稿画像ですが、説明を加えたものを添付致します。
    DrawBezierの3点での使い方を検索したのですが
    4点での使い方しか無いように思い試してみると違う形の結果でした。

    そこで制御点を作ることを考えたのですが、参考ページがなかったので
    数値を変化させながら結果を重ねて表示することを繰り返しました。
    元の制御点から60%の位置が丁度イラストレーターの画像と
    一致するような結果になりました。

    いくつかテストAIデータを作って、試したのですが問題なさそうです。
     しかし「ベジェ曲線」の描画方法が、誤差を考えると
    こんなやり方のはずがないと思い質問をしました。

    たとえば
      DrawBezier(Color、始点、制御点1、制御点2、終点、描画形式)
        の、ような記述で
    描画形式(ラインの種類)を指定した場合にその指定で描画してくれるのでは?
    この答えは分かりませんでしたので、今回こちらで質問させていただきました。

    2度に渡ってわかりやすい解説、ありがとうございます。

225×206
イメージ
2020-07-30.png
/7KB
違反を報告
引用返信
■34518 / ResNo.5)  Re[5]: DrawBezierの使い方について
□投稿者/ 魔界の仮面弁士 大御所(1292回)-(2020/08/03(Mon) 15:00:00)
  • アイコンNo34516に返信(つばささんの記事)
    > DrawBezierの3点での使い方を検索したのですが
    > 4点での使い方しか無いように思い試してみると違う形の結果でした。

    ベジエ曲線の考え方は、下記のアニメーションを見ると分かりやすいかと思います。
    https://postd.cc/bezier-curves/


    なお、.NET Framework のヘルプで DrawBezier について調べてみると、
    ベジェではなくベジエと表記されているわけですが、Be'zier の発音は
    ベジェよりはベジエの方が原音に近いようです。(ベズィエといった感じ?)



    > 元の制御点から60%の位置が丁度イラストレーターの画像と
    > 一致するような結果になりました。

    2 次 → 3 次変換を、数学的証明した記事がありました。
    60% ではなく、2/3 の位置ですね。
    https://nowokay.hatenablog.com/entry/20070623/1182556929


    3 次 → 2 次はもう少し複雑です。次数を落としている分、
    1 つの 2 次ベジエで表現できるとは限らないので、
    複数の 2 次ベジエ曲線を並べて近似曲線にするなどして対応します。
    http://nutsu.com/blog/2008/021520_as_bezierconvert.html
違反を報告
引用返信
■34519 / ResNo.6)  Re[6]: DrawBezierの使い方について
□投稿者/ つばさ 一般人(4回)-(2020/08/04(Tue) 07:49:18)
  • アイコン お世話になります。
    新たな情報、ありがとうございます。

    制御点の値を3つほど作ってラインを書いてみました。
    その後、AIのラインとVBのラインを重ねての画像です。

    制御点60%でほぼ一致することから、数式から導かれるBezier曲線と
    A社、M社の3点Bezier曲線は独自のものと思われます。

    3点Bezier曲線に関しては、ユーザーが必要な係数を
    探し出しセットする仕様なのかもしれませんね?

    この問題は、最初あまり気にならなかったのですが
    これから先に進めていく過程で、座標計算にて曲線の通過ポイントを
    割り出さなければいけない場面が出てくるのですが
    今の時点で、遭遇できたことは幸いです。

    幾度もの解説、並びにアドバイスいただき感謝しています。
    ありがとうございました。

解決み!
違反を報告
引用返信
■34520 / ResNo.7)  Re[7]: DrawBezierの使い方について
□投稿者/ つばさ 一般人(5回)-(2020/08/04(Tue) 08:10:50)
  • アイコン画像が大きくて、添付できていませんね?
    もう一度、投稿です。
解決み!
158×112
イメージ
2020-08-04.jpg
/16KB
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-7]



■記事リスト / ▲上のスレッド
■34495 / 親記事)  メジャーバージョンの異なるLog4netライブラリを参照したい
□投稿者/ なおし 一般人(1回)-(2020/07/09(Thu) 09:55:04)
  • アイコン環境/言語:[Windows10, C#, .NET Framework 4.5.2] 
    分類:[.NET] 

    単独で実行可能なWindows Fromsアプリケーションを開発しています。
    開発にあたり、複数のライブラリを利用しているのですが、これらに異なるバージョンのLog4netライブラリを参照するものが含まれています。

    ・参照DLL:AAA.dll が、log4net の 1.2.10.0 を参照する。
    ・参照DLL:BBB.dll が、log4net の 2.0.8.0 を参照する。

    この状況で、新しいバージョンの 2.0.8.0 の log4net を参照して実行すると、

    ----------------
    System.IO.FileLoadException: ファイルまたはアセンブリ 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'、またはその依存関係の 1 つが読み込めませんでした。見つかったアセンブリのマニフェスト定義はアセンブリ参照に一致しません。 (HRESULT からの例外:0x80131040)
    ファイル名 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' です。'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821'
    ----------------

    とエラーとなってしまいます。
    ネットで調べて、同じような目に遭っている

    https://www.it-swarm.dev/ja/.net/%E5%90%8C%E3%81%98%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%A7log4net%E3%81%AE2%E3%81%A4%E3%81%AE%E7%95%B0%E3%81%AA%E3%82%8B%E3%83%90%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%82%92%E5%8F%82%E7%85%A7%E3%81%99%E3%82%8B/969316636/

    を参考に、app.config を以下のように変更したものの、発生するエラーに変化がありません。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
    <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="log4net" publicKeyToken="1b44e1d426115821" culture="neutral" />
    <codeBase version="1.2.10.0" href="log4net.1.2.10/log4net.1.2.10.dll" />
    </dependentAssembly>
    </assemblyBinding>
    </runtime>
    </configuration>

    これらAAA.dll, BBB.dllの何れも、私共の会社で作成しているものではないため、参照先log4netのバージョンを変更してリビルド、ということが難しい状況にあり、苦慮しております。

    何か指定の仕方にあやまりがあるのでしょうか。
    お気づきのことがありましたら、ご指摘いただけると幸いです。
違反を報告
引用返信

▽[全レス4件(ResNo.1-4 表示)]
■34496 / ResNo.1)  Re[1]: メジャーバージョンの異なるLog4netライブラリを参照したい
□投稿者/ 魔界の仮面弁士 大御所(1285回)-(2020/07/09(Thu) 11:59:05)
  • アイコンNo34495に返信(なおしさんの記事)
    > app.config を以下のように変更したものの、

    その定義だと、dependentAssembly 要素が 1 組しかないようですね。
    1.2.10.0 向けと 2.0.8.0 向け用それぞれに
    //dependentAssembly/assemblyIdentity[@name="log4net"]
    のノードを用意してみては如何でしょう。

    https://pie001.hatenablog.com/entry/2016/12/22/100714
    https://www.it-swarm.dev/ja/.net/*/969316636/
違反を報告
引用返信
■34497 / ResNo.2)  Re[2]: メジャーバージョンの異なるLog4netライブラリを参照したい
□投稿者/ Hongliang 大御所(582回)-(2020/07/09(Thu) 13:05:55)
  • アイコンフォルダ構成はちゃんとしていますか?
    Releaseのほうだけlog4net.1.2.10\log4net.1.2.10.dllを配置してて
    Debugで実行してるとかないですか?
違反を報告
引用返信
■34498 / ResNo.3)  Re[3]: メジャーバージョンの異なるLog4netライブラリを参照したい
□投稿者/ なおし 一般人(2回)-(2020/07/10(Fri) 10:58:32)
  • アイコン魔界の仮面弁士様、Hongliang様、コメントくださいましてありがとうございます。
    まずは魔界の仮面弁士様にご指摘くださいました、両方ちゃんと指定したものの、状況変わらず同じエラーが発生しております。
    また、Hongliang様にご指摘くださいました、app.configに指定したパスと、実際のDLLファイルの配置が適切か、についてもあらためて確認しておりました、以下のように適切?に配置している状況となっておりました。

    プロジェクト
    └bin
     └Debug
      ├log4net.1.2.10
      │└log4net.1.2.10.dll
      ├log4net.dll ※v2.0.8.0 のものです。
      ├AAA.dll
      ├BBB.dll
      ├WindowsFormApplication.exe
      ├WindowsFormApplication.exe.config
      └他DLL

    この構成で、app.configの中身は以下となっています。
    (ビルドにより作成されるWindowsFormApplication.exe.configも中身同じです)

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
    <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
    </startup>
    <runtime>
    <assemblyBinding xmlns="urn:schemas-Microsoft-com:asm.v1">
    <dependentAssembly>
    <assemblyIdentity name="log4net" culture="neutral" publicKeyToken="669e0ddf0bb1aa2a" />
    <codeBase version="2.0.8.0" href="log4net.dll" />
    <!-- 以下の指定をいれてもダメでした。 -->
    <!-- <bindingRedirect oldVersion="0.0.0.0-2.0.8.0" newVersion="2.0.8.0" /> -->
    </dependentAssembly>
    <dependentAssembly>
    <assemblyIdentity name="log4net" culture="neutral" publicKeyToken="1b44e1d426115821" />
    <codeBase version="1.2.10.0" href="log4net.1.2.10/log4net.1.2.10.dll" />
    </dependentAssembly>
    </assemblyBinding>
    </runtime>
    </configuration>


    実行に際し、VisualStudioからのデバッグ実行だけでなく、上記フォルダ内の「WindowsFormApplication.exe」を直接実行しても同じ結果となっています。

    どうも、app.configの設定を読んでくれているのか、というそもそもの疑問がわいておりまして、
    新しくWindowsFormアプリケーションを最小構成で作成して、リトライしてみます。

    取り急ぎ、お礼と現状報告までとさせてください。
    結果はまたここでご報告させていただきます。

    ありがとうございました。
違反を報告
引用返信
■34508 / ResNo.4)  Re[4]: メジャーバージョンの異なるLog4netライブラリを参照したい
□投稿者/ なおし 一般人(3回)-(2020/07/15(Wed) 17:30:23)
  • アイコン魔界の仮面弁士様、Hongliang様、ご報告が遅くなりましたが、異なるLog4netの
    バージョンを参照するDLLのみで構成したモジュールで色々切り分けたものの、
    app.config に記述するやり方では問題を回避することが出来ませんでした。

    私共のスキルでは回避できないと判断し、AAA.dll と log4net.dll(1.2.10.0)
    を別フォルダに配置し、アプリケーションドメインを別に作りその中で AAA.dll
    を読み込んで、プロキシ経由で AAA.dll の機能を利用することにしました。
    今のところ問題無いようですので、これで進めようと考えています。

    色々とご示唆いただきありがとうございました。
解決み!
違反を報告
引用返信

■記事リスト / レス記事表示 → [親記事-4]






Mode/  Pass/


- Child Tree -

2021/01/27(Wed) 21:13:31 に作成されたキャッシュを表示しています。
生のデータを表示する | キャッシュを最新にする