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 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 >>
■1588  Re[3]: Administrator権限のユーザー取得方法
□投稿者/ Jitta -(2007/02/28(Wed) 07:31:14)
    No1575 (あかり♪ さん) に返信
    > 2007/02/27(Tue) 17:52:52 編集(投稿者)
    >

    >>Kozoo 二等兵さん
    > HostName\administratorに記載されているんですね。
    > 調査して、その方法で出来そうであれば試してみたいと思います。
    >
    え?
    記載されているのではなく、Administrator アカウントに偽装、ですよ。
    ホスト名(またはドメイン名)\アカウント名
    アカウント名@ホスト名(またはドメイン名)
    という書き方で、指定します。
記事No.1539 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1590  Re[2]: Administrator権限のユーザー取得方法
□投稿者/ 渋木宏明(ひどり) -(2007/02/28(Wed) 09:26:26)
>
    > HostName\administratorではダメですか?

    Administrator のユーザ名が変更されていたら駄目です。
    どっちにしろ、偽装するためにはパスワードが絶対に必要ですが。
記事No.1539 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1585  C#の演算について
□投稿者/ ann -(2007/02/28(Wed) 00:38:49)

    分類:[C# (Windows)] 

    またまたなんどもすみません。
    以前にも質問したのですが、もしC++のように

    main()
    {
    double* p;

    swap(p+2,p);    //この引数

    }

    swap(double* a,double* b)
    {
    double c;
    c=*a;
    *a=*b;
    *b=c;
    }

    このようにしたいときはC#に書き換えると
    private void()
    {
    double[] p=new double[10];

    swap(p+2,p);    //この引数はどうすればよいでしょうか?

    }

    unsafe swap(double* a,double* b)
    {
    double c;
    c=*a;
    *a=*b;
    *b=c;
    }

    C#だとp+2のような演算はできないのですよね?

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

■1587  Re[1]: C#の演算について
□投稿者/ Blue -(2007/02/28(Wed) 00:59:17)
    2007/02/28(Wed) 01:02:16 編集(投稿者)

    そろそろ、まともなタイトルつけれませんか?
    また、質問ごとにハンドルをコロコロ変えるべきではないでしょう。

    何のためにポインタで渡しているのか理解できればC#ではどう対応するか見えるはずです。
    (というかC++なら参照で渡したほうがわかりやすいと思うが。)

    class Sample1
    {
    static void Main(string[] args)
    {
    double a = 10.0, b = 20.0;

    System.Console.WriteLine("before: a = {0}, b = {1}", a, b);
    swap(ref a, ref b);
    System.Console.WriteLine("after : a = {0}, b = {1}", a, b);

    double[] p = new double[10];
    for (int i = 0; i < p.Length; ++i)
    p[i] = i;

    System.Console.WriteLine("before: p[2] = {0}, p[0] = {1}", p[2], p[0]);
    swap(ref p[2], ref p[0]);
    System.Console.WriteLine("after : p[2] = {0}, p[0] = {1}", p[2], p[0]);
    }

    static void swap(ref double x, ref double y)
    {
    double temp = x;
    x = y;
    y = temp;
    }
    }


    というか、ここら辺はC#の基礎中の基礎でしょう。
    きちんと入門書等で学ばれることを進めます。

    毎回掲示板に頼れば、なんとかなる、基礎なんて面倒って考えは決してしないでください。
記事No.1585 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1592  Re[2]: C#の演算について
□投稿者/ ann -(2007/02/28(Wed) 10:25:38)
    No1587 (Blue さん) に返信
    > 2007/02/28(Wed) 01:02:16 編集(投稿者)
    申し訳ありませんでした。
    以後気をつけたいと思います。

    はい、引数が10.0やp[1]のようなときはできるのですが
    このswapの中の引数が
    double[] p=new double[10];
    のような配列で先頭アドレスの
    swap(p+2,p);
    のようだとできないですよね?
    C++のようにp+2はできないでしょうか?
記事No.1585 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1594  Re[3]: C#の演算について
□投稿者/ επιστημη -(2007/02/28(Wed) 10:34:42)
>
    > このswapの中の引数が
    > double[] p=new double[10];
    > のような配列で先頭アドレスの
    > swap(p+2,p);
    > のようだとできないですよね?
    
    p+2に意味がないから無理っしょ。
    
    C++で
    void swap(double& x, double& y) {
      double tmp = x;
      x = y;
      y = temp;
    }
    って書いたなら swap(p[2], p[0]) って呼ぶっしょ。
    
    これとコンパチなのをC#で書いたのが
    void swap(ref double x, ref double y)
    なわけです。
    
    > C++のようにp+2はできないでしょうか?
    
    上記のではマズい事情があるんかしら?
    よーするになにがしたいのでしょ? 
    
記事No.1585 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1593  Re[3]: C#の演算について
□投稿者/ Blue -(2007/02/28(Wed) 10:31:25)
    No1592 (ann さん) に返信
    > ■No1587 (Blue さん) に返信
    >>2007/02/28(Wed) 01:02:16 編集(投稿者)
    > 申し訳ありませんでした。
    > 以後気をつけたいと思います。
    >
    > はい、引数が10.0やp[1]のようなときはできるのですが
    > このswapの中の引数が
    > double[] p=new double[10];
    > のような配列で先頭アドレスの
    > swap(p+2,p);
    > のようだとできないですよね?
    > C++のようにp+2はできないでしょうか?
    できない。

    C言語では

    p + 2



    &p[2]

    ってのは理解できていますか?

    で、なんでポインタ渡ししているのか理解できますか?
    そうすればおのずと ref を指定すればいいとわかるはずですけど。
記事No.1585 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1600  Re[4]: C#の演算について
□投稿者/ あん -(2007/02/28(Wed) 12:41:01)
    No1593 (Blue さん) に返信
    > ■No1592 (ann さん) に返信
    >>■No1587 (Blue さん) に返信
    > >>2007/02/28(Wed) 01:02:16 編集(投稿者)
    >
    はい、納得できました。
    どうもありがとうございました。
記事No.1585 のレス / END /過去ログ10より / 関連記事表示
削除チェック/

■1483  画面テンプレートの作成方法
□投稿者/ あき坊 -(2007/02/26(Mon) 14:19:22)

    分類:[C# (Windows)] 

    はじめまして、C#初心者です。

    C#にて画面レイアウトの作成についての質問ですが、
    画面遷移するにあたり、画面レイアウトの基本部(サイズ・業務固有のメニュー項目等)を
    固定のテンプレート画面として作成することは可能でしょうか?
    またその場合、各画面の可変部の定義はどの様にすればいいでしょうか?
    どなたかご存知の方・スペシャリストの方がいらっしゃいましたら、ご教授の程宜しくお願い
    いたします。
親記事 /過去ログ10より / 関連記事表示
削除チェック/

■1486  Re[1]: 画面テンプレートの作成方法
□投稿者/ ダッチ -(2007/02/26(Mon) 15:05:40)
記事No.1483 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1604  Re[2]: 画面テンプレートの作成方法
□投稿者/ あき坊 -(2007/02/28(Wed) 15:40:05)
    No1486 (ダッチ さん) に返信

    ダッチさん、超特急での回答有難うございました。
    VSのVersionが2005でなかった為、それに沿った様な項目を探してみましたが
    。。。玉砕です(涙)
    はつねさんの方法で再チャレンジしてみようと思います。

    > こんにちは、ダッチです。
    >
    > こちらを参考にしてみてください。
    >
    > 独自の項目テンプレートを作成するには?[VS 2005のみ]
    > http://www.atmarkit.co.jp/fdotnet/dotnettips/537myitemtemplate/myitemtemplate.html
    >
    >>またその場合、各画面の可変部の定義はどの様にすればいいでしょうか?
    > 画面生成後に動的に変更すればいいと思います。
記事No.1483 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1500  Re[1]: 画面テンプレートの作成方法
□投稿者/ はつね -(2007/02/26(Mon) 18:01:01)
>
    No1483 (あき坊 さん) に返信
    > 画面遷移するにあたり、画面レイアウトの基本部(サイズ・業務固有のメニュー項目等)を
    > 固定のテンプレート画面として作成することは可能でしょうか?

    (1) 普通にWindowsアプリとして画面をつくって、最後にそれをクラスライブラリとします。
    (2) 新しくWindowsアプリのプロジェクトをつくって、クラスライブラリ化したものを参照設定します。
    (3) VBでいえば、Inherits System.Windows.Forms.Formの部分をクラスライブラリ化したものにします。
    (4) これで、基本部が反映された画面になるので、あとは違うところをデザインしていけばOK。

    すごーく簡略化すれば、こんな感じです。
    でも、名前空間を決めたりとか、基本部に対する変更を行うためのプロパティやメソッドを実装したりとか肉付けしなければならないところは色々あります。
記事No.1483 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1608  Re[2]: 画面テンプレートの作成方法
□投稿者/ あき坊 -(2007/02/28(Wed) 16:11:16)
    No1500 (はつね さん) に返信

    はつねさん、有難うございます。
    何とか書いてあることが理解でき(たぶん。。。)サンプルも作成できました。
    ただ、このテンプレートを使用し、基幹プロジェクトに名前を変えて複数画面取り込み、それぞれ固有のレイアウトを作成したとします。
    その後でテンプレート部に修正が加わった場合、取り込んだそれぞれの画面を修正することになる様な気がしますが。。。
    間違った理解をしていますでしょうか。

    > ■No1483 (あき坊 さん) に返信
    >>画面遷移するにあたり、画面レイアウトの基本部(サイズ・業務固有のメニュー項目等)を
    >>固定のテンプレート画面として作成することは可能でしょうか?
    >
    > (1) 普通にWindowsアプリとして画面をつくって、最後にそれをクラスライブラリとします。
    > (2) 新しくWindowsアプリのプロジェクトをつくって、クラスライブラリ化したものを参照設定します。
    > (3) VBでいえば、Inherits System.Windows.Forms.Formの部分をクラスライブラリ化したものにします。
    > (4) これで、基本部が反映された画面になるので、あとは違うところをデザインしていけばOK。
    >
    > すごーく簡略化すれば、こんな感じです。
    > でも、名前空間を決めたりとか、基本部に対する変更を行うためのプロパティやメソッドを実装したりとか肉付けしなければならないところは色々あります。
    >
記事No.1483 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1609  Re[3]: 画面テンプレートの作成方法
□投稿者/ あき坊 -(2007/02/28(Wed) 16:19:24)
    No1608 (あき坊 さん) に返信
    > ■No1500 (はつね さん) に返信

    はつねさん、すいません。実験ミスってました。
    テンプレート部修正で、あっさりと全画面反映されました。
    この手法で頑張ります!!
    解決です。


    > はつねさん、有難うございます。
    > 何とか書いてあることが理解でき(たぶん。。。)サンプルも作成できました。
    > ただ、このテンプレートを使用し、基幹プロジェクトに名前を変えて複数画面取り込み、それぞれ固有のレイアウトを作成したとします。
    > その後でテンプレート部に修正が加わった場合、取り込んだそれぞれの画面を修正することになる様な気がしますが。。。
    > 間違った理解をしていますでしょうか。
記事No.1483 のレス / END /過去ログ10より / 関連記事表示
削除チェック/

■1576  C++とC#の違いについて
□投稿者/ あん -(2007/02/27(Tue) 18:04:52)

    分類:[C# (Windows)] 

    何度もすみません。もしよろしかったら拝見してみてください

    またC++のコードをC#に変えるときの質問なんですが、関数で引数の渡し方がうまくできません。

    下のほうにあるsimpという関数の中身なんですが、コードの中で説明があります。
    メイン関数
    main(int argc, char *argv[] )
    {
    int i, j,i1;
    int d;
    int n;
    double **p;
    double *pp;
    double *y;
    double rand1[1][1]={2.2};


    //処理

    d=1;
    p = (double **)malloc((size_t)(d+1)*sizeof(double *));
    pp = (double *) malloc((size_t)(d+1)*d*sizeof(double));
    for(i = 0 ; i < d+1 ; i++)
    p[i] = pp+i*d;

    for(i = 0 ; i < d+1 ; i++)
    for(j = 0 ; j < d ; j++)
    p[i][j] = 0;

    for(i = 0 ; i < d ; i++)
    p[1][i] = rand1[0][i];

    y = (double *) malloc((size_t)(d+1)*sizeof(double));
    for(i = 0 ; i < d+1 ; i++)
    y[i] = mtl2(p[i]);

    n = simp(p, y, mtl2);    //この部分なんですがC++ですとこのような感じです。  
    }
    double mtl2(double *t)
    {
    int i;
    double mtl;

    mtl =kansuu(t[0]);        //ここでt[0]を与えて計算しています。
    return(-mtl);
    }

    int simp(double **p, double *y, double (*funk)(double *))
    {
    double nfunk;

    //処理

    y[i] = (*funk)(psum);      //simpの関数の中でこのような計算があります。

    return nfunk;
    }

    C++ですとこのような感じです。
    以下がC#で書いたコードです。

    private void button2_Click(object sender, System.EventArgs e)
    {
    int i, j,i1;
    int d;
    int n;
    double[][] p=new double[2][];
    double[] y=new double[2];
    double[] x=new double[2];

    double[] rand1=new double[1] {2.2};

    d=1;
    for (i = 0; i < p.Length; ++i)
    p[i] = new double[2];

    for(i = 0 ; i < d+1 ; i++)
    for(j = 0 ; j < d ; j++)
    p[i][j] = 0.0;

    for(i = 0 ; i < d ; i++)
    p[1][i] = rand1[i];

    for(i = 0 ; i < d+1 ; i++)
    y[i] = mtl2(p[i]);

    n = simp(p,y, mtl2);    //ここのmtl2の所がエラーになってしまいます。
                                 G:\C#\Form1.cs(923): メソッド '描画.Form1.mtl2                              (double[])' かっこなしで参照されました。
    となります。またmtl2(p[i])といれてみたのですが、G:\C#\\Form1.cs(923): 引数 '3' : 'double' から '描画.Form1.[]f1' に変換できません。となってしまいます。



    }

    private double ml2(double[] t)
    {
    int i;
         double mtl;

    mtl=kansuu(t[0]);

    return( -mtl );
    }

    private delegate double f1(double[] f);
    private int simp(double[][] p,double[] y,f1 []funk)
    {
    double nfunk;

    //処理
    y[i] = (funk[0])(psum);   //c++では(*funk)(psum)なんですがこれはいいんですかね?

    return nfunk;
    }

    かなり長くなってしまい申し訳ありません。
親記事 /過去ログ10より / 関連記事表示
削除チェック/

■1581  Re[1]: C++とC#の違いについて
□投稿者/ επιστημη -(2007/02/27(Tue) 21:27:38)
>
    >  n = simp(p,y, mtl2);    //ここのmtl2の所がエラーになってしまいます。
    
      n = simp(p, y, new f1[] {mtl2});
    
    
記事No.1576 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1586  Re[2]: C++とC#の違いについて
□投稿者/ ann -(2007/02/28(Wed) 00:39:45)
    No1581 (επιστημη さん) に返信
    > > n = simp(p,y, mtl2);    //ここのmtl2の所がエラーになってしまいます。
    >
    > n = simp(p, y, new f1[] {mtl2});
    >
    >

    どうもありがとうございます。
    現在C#ができない状況ですので明日確認してみます。
記事No.1576 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1599  Re[3]: C++とC#の違いについて
□投稿者/ あん -(2007/02/28(Wed) 12:39:46)
    No1586 (ann さん) に返信
    > ■No1581 (επιστημη さん) に返信
    >>> n = simp(p,y, mtl2);    //ここのmtl2の所がエラーになってしまいます。
    >>
    n = simp(p, y, new f1[] {mtl2}); //またこのmtl2のところで
    G:\C#\レジストレーション\Form1.cs(922): メソッド '描画.Form1.mtl2(double[])' かっこなしで参照されました。
    というエラーが出てしまいます。なにか助言などありましたら助かります。




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

■1602  Re[4]: C++とC#の違いについて
□投稿者/ επιστημη -(2007/02/28(Wed) 14:32:09)
>
    > n = simp(p, y, new f1[] {mtl2}); //またこのmtl2のところで
    > G:\C#\レジストレーション\Form1.cs(922): メソッド '描画.Form1.mtl2(double[])' かっこなしで参照されました。
    > というエラーが出てしまいます。なにか助言などありましたら助かります。

    教本をきちんと読んで理解してください。

    僕のテストコードでは正しく実行してくれました。
    あなたのコードがどうなってんだか、示されていないものは判断しようがありません。
記事No.1576 のレス /過去ログ10より / 関連記事表示
削除チェック/

■1603  Re[5]: C++とC#の違いについて
□投稿者/ Blue -(2007/02/28(Wed) 14:40:40)
    ところで、なんでいきなり配列になってしまっているのでしょうか?
    C言語では配列になっていないのに。

    typedefを使うと明確です。

    >int simp(double **p, double *y, double (*funk)(double *))



    typedef double (*FUNC)(double* );

    int simp(double** p, double* y, FUNC func)


    C#ではtypedefをdelegateと置き換えてみると

    private delegate double FUNC(double[] param);

    int simp(double[][] p, double[] y, FUNC func)

    となり

    n = simp(p, y, mtl2);

    これで呼び出せるはず。

    * → []
    ** → [][]

    という安易な変換でうまくいくようなものではありません。
    きちんとコードを理解して使ってください。
    とりあえず、C++のコードが理解できていないように思えるけど、、、
記事No.1576 のレス /過去ログ10より / 関連記事表示
削除チェック/

<前の20件 | 次の20件>

<< 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 >>

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

パスワード/

- Child Tree -