[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 04/29 18:13 / Filesize : 234 KB / Number-of Response : 944
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれ.NET(超初心者向け)



1 名前:デフォルトの名無しさん [2006/10/07(土) 17:28:33 ]
このスレッドは
どんなに「くだ」らない.NETプログラミングに関する質問でも
誰かが優しくレスをしてくれる「すれ」っどです。
質問者自身何がなんだか分からない質問でも勇気をもって書き込んで
ください。お礼は.NETアプリケーションの普及と初心者の救済を
お願いします。

697 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 22:59:19 ]
>>696
ありがとうございます。
とりあえずGoogleってた結果、
Type.GetTypeFromProgID()というのを見つけたので実装はできそうです。

VBを1から勉強するかは後で考えるとして、
COMを動的参照するときって、普通はどういうクラスのどういうメソッドで参照先dllを探すのですか?

今までは自分で作ったdllを動的参照することしかしたことがなかった上、
インターフェースは静的に参照してそれを実装したクラスをReflectionで見に行く
ってことしかしたことがないので、COMの一般的な探し方を教えてくれませんか?

名前はともかくとして、COMのdllがある場所ってどうやって調べるんですか?

698 名前:デフォルトの名無しさん mailto:sage [2008/09/01(月) 23:11:05 ]
>>697
レジストリ(HKCR)を探せば見つかるが、プログラミング目的では普通やらない。
みんなProgIDとかClsIDとかで識別するから。

それに、DLLなら直接読み込んでオブジェクトを作ることも可能だが、
EXEに実装されているとどの道COMのAPIを介さないといけない。

699 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 00:19:01 ]
>Type.GetTypeFromProgID()
を使うんだからおかしなことを考える必要はない。

問題は、インターフェイスを参照できないから、
メソッド呼び出しとかまですべてリフレクションでやらなきゃならないこと。


700 名前:DD mailto:sage [2008/09/02(火) 11:03:35 ]
>>697
とりあえず、VC#2005なら、ソリューションエクスプローラーの参照設定右クリックから
参照の追加。
COMタブを選択して、Microsoft Excel XX.X Object Library を選択して
OKボタンクリック。
これで一応使える。
COMオブジェクトは最後に必ず開放。こんな感じでどうでしょう。

/// <summary>
/// COM オブジェクトの参照カウントを解放する
/// </summary>
/// <param name="comobj">COMオブジェクト</param>
private void ReleaseComObject(Object comobj)
{
    // COMオブジェクトだったら
    if (comobj != null && System.Runtime.InteropServices.Marshal.IsComObject(comobj))
    {
        try
        {
            System.Runtime.InteropServices.Marshal.ReleaseComObject(comobj);
        }
        catch { }
        finally
        {
            comobj = null;
        }
    }
}



701 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 12:14:10 ]
>>700
それだと複数バージョンのExcelに対応できないだろ>>693読め。

702 名前:DD mailto:sage [2008/09/02(火) 13:11:52 ]
>>701
あ、その通りですね(^^ゞ
以前Excelを扱った時はSpreadsheetGearを使ったので
COMを使った操作は良く分からないです。。。
サードパーティのライブラリを使用したくないとのことですので
これは使えませんね。
お役に立てずm(__)m

703 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 15:25:27 ]
> comobj = null
意味ないじゃんw

704 名前:DD mailto:sage [2008/09/02(火) 15:26:49 ]
>>703
ですね(^^ゞ
はった後私もそう思いました。

705 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 19:07:53 ]
>>701
バイナリになってしまえば問題ないんだよ。
「複数バージョンのExcelに対応できない」のはあくまで開発環境のみ。

一部バージョンが違うと例外が発生するメソッドがあったりするけど、
そこだけ個別に対応すれば問題ない。




706 名前:697 mailto:sage [2008/09/02(火) 21:11:51 ]
いろいろなご解答ありがとうございます。

今回は複雑なエクセル操作をするわけではないので、
すべてリフレクションでやるクラスを作って、それを使いまわそうと思います。
ありがとうございました。

707 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 21:33:39 ]
VBでクラスライブラリ作った方が簡単だと思うけどな。

708 名前:デフォルトの名無しさん mailto:sage [2008/09/02(火) 23:26:51 ]
>>705
え?まじで?
うっそーん?


709 名前:デフォルトの名無しさん mailto:sage [2008/09/04(木) 20:20:35 ]
VBAではセルの文字列の色をCellsのCharactersで調べられるのですが
.NETではどうればいいのでしょうか?

msdnにはRangeにCharactersがあるのですが
書いてみると定義がありませんと
エラーがでます。
using Excel = Microsoft.Office.Interop.Excel;

var xls = new Excel.Application();
var book = xls.Workbooks.Open(略
var rng = (Excel.Range)book.sheet.Cells[1, 1];

こんな感じでRangeクラスを取得してます。
ちなみにVS2008SP1を使っています。

710 名前:DD mailto:sage [2008/09/08(月) 10:36:38 ]
>>709
rng.Font.Color
で取得できるのでは?

711 名前:709 mailto:sage [2008/09/08(月) 19:52:53 ]
>>710
すいません、質問の内容を微妙に間違えてました。
取得したいのは文字列のn番目の文字の色なんです。
Characters(4, 1).Font.ColorIndex
と書くとVBAでは4文字目の色の取得や設定が
出来るんです。

それだと多分セルに設定された文字列の色になるんですかね?

712 名前:デフォルトの名無しさん mailto:sage [2008/09/08(月) 21:09:12 ]
net導入するときはVB6を残したままでもいいですか?

713 名前:DD mailto:sage [2008/09/09(火) 11:55:55 ]
現在Visual Studio 2005 C#で以下のようなことを実現したいと考えております。
DropDownList(値にはIDが入っている)で選択した項目に一致するレコードをGridViewに表示する。
DropDownListにはALLという項目があり、これを選択すると
すべてのレコードを表示する。
このようなことをやりたいのですが、どうやったらいいのか分かりません。
現状ではALLを静的に追加しており、その値は0となっています。
また、GridViewのデータソースにSqlDataSourceを割り当て、
SqlDataSourceのSelectParameter(ID)にDropDownListの
SelectedValueを設定し、ALL以外の項目を選択した場合は
正常に動作しています。
どなたかご教授ください。

714 名前:DD mailto:sage [2008/09/09(火) 12:06:29 ]
自己解決しました。
bunise.seesaa.net/article/91995844.html
このページを参考にしてやってみてはいたのですが、なかなかうまくいかず
質問させていただきました。
結局は、SqlDatasourceのCanselSelectOnNullParameterをFalseにするのを
忘れていただけでした(^^ゞ
お騒がせいたしました。

715 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:36:55 ]
.NET2005環境を利用しています。

Private Sub ShowMsgBox(ByVal PromptText As String, Optional ByVal Type As Integer = 0, _
Optional ByVal Title As String = "")
に対して、配列CmdArgsの1番目(0番目ではない)〜3番目の要素を
引数として渡したいのですが、2番目・3番目の要素は省略される可能性があります。

呼び出しについて例としてPerlで書くと、「$ShowMsgBox(CmdArgs[1..$#CmdArgs]);」のように
不定要素数の配列をインデックス1から最後まで指定して投げることが出来ますが、
VBではどのような形で呼び出せばいいでしょうか。

要素数を判別して、条件毎に呼びだし方を変更するしかないでしょうか。



716 名前:デフォルトの名無しさん mailto:sage [2008/09/09(火) 23:58:56 ]
>>715
ShowMsgBox(ParamArray args as Object())でも多重定義しとくとか。
まあどのみちその中で要素数を調べてToStringして別のシグネチャのShowMsgBoxを
呼び出すコードを書くわけで、同じといえば同じかもしれないけど。

っていうか趣味の問題かもしれんがOptionalは使わない方がいいんじゃないか?

717 名前:715 mailto:sage [2008/09/10(水) 00:20:30 ]
>>716
なるほど、即レスありがとうございます。

要素数判定で呼び出し方を返る、という形で書いてみましたが
かなり冗長な呼び出し方になってしまい、本末転倒な感じがしてきました。

If CmdArgs.Length > 3 Then
ShowMsgBox(CmdArgs(1), CmdArgs(2), CmdArgs(3))
ElseIf CmdArgs.Length > 2 Then
ShowMsgBox(CmdArgs(1), CmdArgs(2))
Else '←必ず0、1番目の要素は定義されている
ShowMsgBox(CmdArgs(1))
End If

ShowMsgBox側で配列としてまとめて受け取ってから、
処理した方が良さそうですね・・・。

>Optionalは使わない方がいいんじゃないか?
C感覚で勉強中だったので、多重定義が可能なことを忘れていました。
もう少し勉強してみます(`・ω・´)

718 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:26:13 ]
ドレミファソラシドの周波数を算出するため、十二平均率
ja.wikipedia.org/wiki/%E5%B9%B3%E5%9D%87%E5%BE%8B#.E5.8D.81.E4.BA.8C.E5.B9.B3.E5.9D.87.E5.BE.8B
の周波数比を計算させたいのですが、ExcelのPOWER関数のような累乗根計算の方法はありませんか?

719 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 01:36:09 ]
Math.Pow

720 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 02:17:05 ]
>>719は累乗と累乗根の違いすら分かってないから参考にしないように。

721 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 03:17:17 ]
ニヤニヤ

722 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 08:55:11 ]
Math.Pow( >>720, 1.0/12.0);


723 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 11:37:07 ]
>>720
やる夫

724 名前:718 mailto:sage [2008/09/10(水) 12:12:07 ]
>>719,722
ありがとうございます!
以下のようにしたら十二平均律の周波数を算出できました。

Dim i As Integer, fr(12) As Double
For i = 0 To 12
    fr(i) = Math.Pow(Math.Pow(2, i), 1.0 / 12.0)
Next

725 名前:722 mailto:sage [2008/09/10(水) 12:35:12 ]
>>724
素直に
Math.Pow( 2.0 , i / 12.0)
と書くべし



726 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:49:08 ]
ワロタ

727 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 12:53:46 ]
素直なのは>>724なんじゃない?
整理したら>>725だけどさ

x  _
 √a  = a^(1/x)

であるから、

x  __
 √a^b = (a^b)^(1/x)

となり、十二平均律では、x = 12, a = 2, b = (1から12)となるので、

12 __
 √2^b = (2^b)^(1/12)

bをiとして、

2^i = Math.Pow(2,i)

これにより、

Math.Pow(Math.Pow(2, i), 1.0 / 12.0)

728 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:02:47 ]
意味が分からずに言われたとおりに簡略化して書いてる奴って職場だとホント困るんだよな・・・。

729 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:04:56 ]
中学数学でしょ

730 名前:722 mailto:sage [2008/09/10(水) 13:09:00 ]
主観入ってたわ。
頭の中で
x  __
 √a^b = a^(b/x)
になってた。

というわけで、>>725を訂正して、
Math.Pow()を2回呼ぶより、整理して1回にしたほうが良いと思う。
分かりにくかったら無視してくれ。

731 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:15:30 ]
Math.Powは見るからに処理長そうだしねえ
慣れるまでは理解するまでベタ書きが無難だが
慣れたら呼び出す回数を減らすことを勧めたい

732 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 13:44:50 ]
問題にはならないだろうけど、一応精度の問題もある

733 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:19:53 ]
ここぞとばかりにOOoのMath使ってみたんだけど
ほんとハナクソだな・・・('A`)モウツカワネ

www1.axfc.net/uploader/Img/l/2296233703/Img_20227.gif

734 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:30:52 ]
404 Not Found

735 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 17:32:29 ]
すまん、リファラ読んでるっぽいな。
www1.axfc.net/uploader/Img/so/20227



736 名前:デフォルトの名無しさん mailto:sage [2008/09/10(水) 20:34:53 ]
>>727
発想が逆立ちしてるよw
数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。

12音階というのは2(1オクターブ)を対数軸上で12等分したもの、
というのが全ての出発点で12乗根√2っていうのはそこから導出した値に過ぎないんだよ。

対数軸(y = log(x))上の等差数列はxの世界では等比数列になる、って考えてもいいけど
普通は直感的に基準となる音からn番目の音の周波数は2の(n/12)乗倍だってわかるだろ。

737 名前:デフォルトの名無しさん mailto:age [2008/09/11(木) 16:35:43 ]
すみませんが、質問です。

Googleなどの検索エンジンで .NET の情報を効率よく集めるには、どのような
検索語にすればよいでしょうか?

ただ入力すると、.netというドメイン名にばかりヒットしてしまいます。


738 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:40:29 ]
>>736
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。
>数学できない子にありがちだけど、問題を自分でわざわざ複雑にしてるよ。

739 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:43:02 ]
検索エンジンの使い方までサポートする幅広いスレだな

せめてVBで検索しろ

740 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:53:14 ]
>>739
ありがとうございます。C#で検索することにしました。
.NETは別にC#だけではないのですが、関係ないページばかり見つかるよりマシです。


741 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 16:55:30 ]
いやVisualStudioだろ

742 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:14:38 ]
VisualStudio は .NET だけじゃないんじゃ?

743 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:23:41 ]
だから.NETと組み合わせるんじゃ?
でもVisualStudioじゃ取りこぼし多そうだがなあ

744 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:40:51 ]
うん、組み合わせのつもりで言ったぞ
VisualStudio .NET 2005 +言語名なら確実だろう

745 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:45:11 ]
マイクロソフトは一般名詞を商標にして
いつの間にか自社製品を示す言葉にするのが得意だからな。



746 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:54:08 ]
そうだね。あれは本当に迷惑。
昔の話だけど .doc という拡張子は元々テキストファイルのものだったのに、
勝手に MS Word のものにされた。
Word という名前といい、いまだに腹が立つ。


747 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 17:56:00 ]
それはそれとして、ノイズが混じらなくて、取りこぼしをなるべく少なくする
には、どんな検索語がいいかな。
VisualStudioは、ちょと取りこぼし多そう。


748 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:14:16 ]
そろそろスレチじゃね
.NET資料の探し方とは言え、googleの検索仕様に左右される話題だし

749 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:31:12 ]
正規表現を使うって発想がないWindowsの天下で
わざわざ正規表現を実装する検索サイトはないよな

あったら凄まじく便利なんだが

750 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:34:42 ]
有るわけがない。
文化の問題ではない。

751 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 18:59:48 ]
ここで正規表現が使える奴が居るかも怪しい

752 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 19:45:57 ]
.NETにも正規表現クラスあるけどちょっと使い方がまどろっこしい

753 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:27:37 ]
正規表現は一種のツールだからな。
プログラミングサイドで実装されてても、
OS側が環境として提供してくれないと・・・

754 名前:デフォルトの名無しさん mailto:sage [2008/09/11(木) 23:44:32 ]
>>746
外国だとテキストファイルに.docはマイナーだったって聞いている。
わざわざかぶること前提で.docに決めたわけなかろう。

755 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 00:04:36 ]
少なくとも.NETはトップレベルドメイン.netとかぶること前提だけどな



756 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 09:57:40 ]
しかし readme.doc は国内外を問わず添付されてた気が

757 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 10:03:53 ]
拡張子の制約で使い勝手を縛るのはWindowsとhttpのMIMEtypeだけだよ。

758 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 10:26:40 ]
知ったようなことを言う


759 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 11:59:51 ]
反論すら成立してない

760 名前:デフォルトの名無しさん mailto:sage [2008/09/12(金) 19:55:34 ]
そういやマックのファイルっていまだにマックバイナリ付いてるの?

761 名前:デフォルトの名無しさん [2008/09/13(土) 09:07:27 ]
ビジュアルベーシック.NETでOSは作れますか???

762 名前:デフォルトの名無しさん mailto:sage [2008/09/13(土) 09:09:50 ]
>>761
少なくともバカは治せない

763 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 03:50:40 ]
>>760
マックバイナリが何なのか理解してないね

764 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:43:56 ]
>>763
意味が分からない。
どうせ絡むならはぐらかしたような言い方せずに全部言えよ。
「何なのか理解していない」のが君の方でなければなw

765 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 12:51:38 ]
調べればいいだろ
「いまだに」とかつける勘違い名人には教えません



766 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:04:24 ]
>>765
一般的事実なら調べれば分かるかもしれないが、
馬鹿なお前さんの独善的「思い込み」の意味をどう調べろって言うのかね。

本当、最近こういうセカイ系的メンタルの奴が多くて困る。

767 名前:デフォルトの名無しさん mailto:sage [2008/09/14(日) 13:08:06 ]
というか、何も具体的なこと言えないから最初から人に絡むなよ。

768 名前:デフォルトの名無しさん [2008/09/14(日) 23:24:20 ]
C++スレで自分では答えられないザコから誘導されてきました


VC++ 2005 Express
自分のアプリから、別のアプリが起動してるかどうか見たい



207 名前:デフォルトの名無しさん[] 投稿日:2008/09/14(日) 20:48:40
iniファイルは釣りでした。
起動してるプロセス(リスト)の取得教えて

210 名前:デフォルトの名無しさん[sage] 投稿日:2008/09/14(日) 21:59:34
くだすれ.NET逝け

769 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 03:05:51 ]
うん。見れば

770 名前:デフォルトの名無しさん mailto:sage [2008/09/15(月) 04:23:42 ]
>C++スレで
やっぱりC++/CLIとC++の区別が付いてなかったのか、VIPに逝け

771 名前:デフォルトの名無しさん [2008/09/15(月) 19:45:31 ]
質問です。
WINDOWS XP使用で、コンパイラはBorlandC++compiler5.5です。
インストールしたあとパスの設定で、
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Common Files\GTK\2.0
とあったところに\bin;c:\Borland\Bcc55\binと付けました。
なのに、実際コマンドラインでメモ帳を開こうと>C:\WINDWS\NOTEPAD.EXEと打ち込んでも、
指定されたパスは見付かりませんとでます。(NOTEPAD.EXEはCディスクの中のWINDWSに入れてあります。)
他にもカレントディレクトリを変えようとして、>cd ○○と打っても、
確かにあるはずなのに指定された(ryになってしまいます。
誰か助け手ください(涙)

772 名前:771 [2008/09/15(月) 20:08:40 ]
スレ違いのようでしたので、他に聞いて見ます。
すみませんでした。

773 名前:デフォルトの名無しさん [2008/09/16(火) 22:58:28 ]
質問ですお願いします。

C#でUDP通信するソフト作ってるんですが、
通信時の暗号化に3DES使おうとプラグロミングして
reflectorで覗いたらキー丸見えで萎えました。

クラックを防げる暗号化ってどう実装したらよいでしょうか
制限事項としては
(制限1)クライアントで暗号化したものをサーバで複合できる(逆も然り)
(制限2)上記制限1のため、暗号化キーは固定する必要あり?

3DESのキーをまた暗号化してしまうとか、
キー生成アルゴリズムを埋め込んで、キー自体を持たないとか
外部にキーを持たせてdll参照するとか色々考えたんですが
結局トレースされたらばれてしまうのでティンときませんでした。

道かよろしくお願いします。


774 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:04:49 ]
3DESじゃなきゃだめなの?
公開鍵じゃだめなの?

775 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:09:06 ]
公開鍵も考えたんですが、ようは、誰かが作った偽クライアントがサーバに接続されるのを防ぎたかったので
鍵自体バレると・・・と思ったけど

今よく考えたらreflectorでソース見れる時点で暗号化どうのこうののまえに偽クライアントは作れてしまいますね。。。
.netで作るのをやめる事にします。

どうもありがとうございました。




776 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:42:59 ]
これは酷い思考停止

777 名前:デフォルトの名無しさん mailto:sage [2008/09/16(火) 23:44:50 ]
ネイティブで作ったって一緒。
まあ解析しにくいことは否定しないが。

本当に安全にやるなら、SSLとかでやってるのと同じような仕組みを作らにゃならん。


778 名前:773 mailto:sage [2008/09/16(火) 23:59:23 ]
すみません775は私です。

私は生産者側なのでクラックにはあまり興味ないですが、.NETの形態上ソースが見えてしまうのは仕方がないんですよね。
今まで、いかに破られない認証をするかを考えてきましたが、認証の部分だけ省いてソースをコピペしたらちゃんと動いてしまうんですよね。

生産対象物がきわめて専門的なBtoBのようなソフトであれば、ソースをほしがるような客先は少ないです。
逆に、保守のことを考え、わざわざソースをセットで渡してしまうこともありますが、
たとえばネットゲームのような、完全なBtoCまたはCtoCの形を取るソフトであれば、不特定多数のクライアントがいるわけで
そのなかには必ず中身を解析したり、場合によっては不正な手順でサーバにアクセスする人たちが出てきます。

そういった人たちのモチベーションに反比例するのが解析の難しさ、めんどうさだと思います。
もちろん従来のネイティブコードでクラックできないわけではないですが、.NETよりはめんどうです。
そうした意味では、.NETという、言ってしまえば実行ファイルのソースが公開されているプラットフォームを避けるのも一つの手かなと思いました。

長くなりましたが、つまり、知りたいことは、
1).NETでClient/Server作ってる人は、どういう実装をされてるんでしょうか。
2)そもそも.NETは使わないんでしょうか。

度々すみませんがもう少し知恵をお貸しください。

779 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:04:57 ]
だから本当に確実な認証が必要なら、パスワードか証明書かICカードかUSB鍵か、
とにかくソースを解析しても不可能な方法をとるわけだよ。

>いかに破られない認証をするかを考えてきましたが、認証の部分だけ省いてソースをコピペしたらちゃんと動いてしまうんですよね。
それってどんな認証だよっていうか認証って言わないだろそんなの。


780 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:12:17 ]
ん?
ひょっとして接続が許可された人間でも偽クライアント(というかその許可情報)を使用した接続とか
できないようにしたいって言ってる?
そんなことは基本的には不可能だよ。

たとえばソース解析するまでもなくそのクライアントアプリをコピーして別のマシンで動かした場合はどうなるんさ?
※パスワードやらその他認証用の情報も基本的に同じようなもの


781 名前:773 mailto:sage [2008/09/17(水) 00:12:45 ]
>>779
すみません話を混ぜて書いてしまいました。
>いかに破られない認証をするかを考えてきましたが、認証の部分だけ省いてソースをコピペしたらちゃんと動いてしまうんですよね。
これは、キーさえわかっていれば他の部分コピペして新たに偽クライアント作ったらサーバ側からは偽クライアントだとはわからないという意味です。

パスワードか証明書かICカードかUSB鍵がいらない偽クライアントが出来てしまえばサーバ側では対処できないだろうという意味で書きました。
ネットゲームのBOTツールとかがそれにあたるんでしょうか。

782 名前:773 mailto:sage [2008/09/17(水) 00:15:19 ]
>>780
そうです!それが言いたかったんです。
クライアントアプリの複製は問題ないです。

クライアントアプリを騙って不正なパラメータでアクセスをされるのを防ぎたいんです。

783 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:27:03 ]
不可能。
だってクライアントが正しいかをサーバ確認できるのは通信内容によってのみだから。
基本的にクライアントプログラムが本物かを「確実に」確認する方法はない。


784 名前:773 mailto:sage [2008/09/17(水) 00:42:33 ]
だとすると、暗号化の議論の中では邪道とされている、処理の隠蔽しか暫定的な回避策は無いですね。
.NETには不可能ですが。

逃げにしかなりませんが、Client側はネイティブな別の言語に移植する事にします。
また、暗号化のクラック対策としては、定期的にClient/Serverともアップデートをかけて、
実行前にキーを変更する仕組みにしようと思います。

勉強になりました。
ありがとうございました。

785 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 00:47:00 ]
つーか難読化とか耐タンパとかでググれって誰も言わないのは何でなんだぜ?



786 名前:773 mailto:sage [2008/09/17(水) 01:03:15 ]
>>785
そんなのがあったのですね。勉強不足でした。

早速フリーの難読化ソフトで実験してみたら、実行は出来るのにコンパイルが通らないソースが出来上がり感動しました。
さすがに定数は難読化されなかったですが。
ソフトの種類によっていろいろなのかな。

ちょっと色々調べてみます。ありがとうございました。

787 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 01:42:37 ]
本格的には使いにくいからじゃね?


788 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 14:36:03 ]
javaseで掲示板へ投稿するスクリプト作れますか?
ポストリクエストを少々いじるのはjavaeeになるのでしょうか?
よろしくお願いいたします


789 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 19:48:25 ]
ここ数件の 書き込みに 対して スレタイ 欲嫁 と 言ってやりたい


790 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 20:29:49 ]
Form2が閉じた時にForm1を更新するにはForm.Closedイベントを使えばいいのはわかるんだけど、
Form1から、Form2が”閉じてる”て状態を捉えるにはどうすればいいのですか?
Form2.Enabled = Falseじゃ駄目みたいなんだけど
VB.NETです

791 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:02:32 ]
Visible

792 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 21:53:24 ]
IsDisposed

793 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 22:10:00 ]
どういう動作を意図してるかわからんけど
閉じてるかどうか判断して閉じてたら開きなおすならこんな漢字化

Public Class Form1

  Dim f2 As Form2 = Nothing

  ''' <summary>
  ''' Form2をShowする
  ''' </summary> '''
  Private Sub ShowForm2()
    'Form2をはじめて開く場合
    If f2 Is Nothing Then
      f2 = New Form2
    Else
      'Form2が閉じてた場合
      If f2.IsDisposed Then
        f2 = New Form2
      End If
    End If
    f2.Show(Me)
    f2.Activate()
  End Sub

End Class


794 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:11:49 ]
>>790
Application.OpenFormsで現在開いている(表示されている)フォームのコレクションが取得できる。
こんなかに、Form2が入っているかどうか見ればいいかと思われる。

795 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:21:14 ]
790です
色々ありがとうございました
勉強になりました
意図していた動作は、Form1にある、Form2をshowするボタンを、Form2が開いてる間は無効にする、というものでした。




796 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:42:27 ]
>>795
それだと状態を常に監視する為にコールバックしないといけないような

というかそもそもその動作ならForm2が開いているかどうかは関係ないよ

button1が押されたときに
button1.Enabled=False

Form2が閉じるときに
DirectCast(Me.Owner, Form1).Button1.Enabled = True


797 名前:796 mailto:sage [2008/09/17(水) 23:44:17 ]
途中で送信してしまった
スマソ

Form2を開くボタン(仮にbutton1)のスコープをForm2から参照可能にしておいて
>>795みたいなかんじでやれば、Form2の状態など監視せずにスマートにいけるんじゃね

798 名前:797 mailto:sage [2008/09/17(水) 23:45:59 ]
安価間違いグダグダスマソorz

×>>795みたいなかんじ
>>796みたいなかんじ

799 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:46:33 ]
>>795
そういうのはForm1の適当なメソッドにForm2の適当なイベント(例えばFormClosed)を
紐付けするんだよ。

VBならForm2の参照をWithEventsで持つ方法でもいい。

というか、くだすれか何か知らんけど、
こんなレベルの話は入門書を一冊軽く斜め読みすれば分かることで
掲示板で人に聞くような内容じゃない。

800 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:49:26 ]
799
まぁまぁ「くだすれ」なんだから
ごもっともだけども。

801 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:52:38 ]
>>794のやつが一番スマートだと思われるが。
Form2のNameプロパティに"Form2"と設定してあれば
If Application.OpenForms("Form2") Is Nothing Then
MessageBox.Show("Form2は閉じてる")
Else
MessageBox.Show("Form2は開いてる")
End If
と判断できるし

802 名前:デフォルトの名無しさん mailto:sage [2008/09/17(水) 23:57:13 ]
>>801

ずっとチェックするの?
>意図していた動作は、Form1にある、Form2をshowするボタンを、Form2が開いてる間は無効にする、というものでした。

僕はその意見には反対ですが、

まぁ、一番スマートなやり方はどうかは別にして、やり方はいくつもあるってことだね
初心者はいろいろやってみて、一長一短あるのを自分なりにとらえるようになるのも勉強だ

803 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 00:11:44 ]
>意図していた動作は、Form1にある、Form2をshowするボタンを、Form2が開いてる間は無効にする、というものでした。
であれば、

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim f2 As New Form2()
f2.Show()
Button1.Enabled = False
AddHandler f2.Disposed, AddressOf Me.Form2_Disposed
End Sub
Private Sub Form2_Disposed(ByVal sender As Object, ByVal e As EventArgs)
RemoveHandler CType(sender, Form2).Disposed, AddressOf Form2_Disposed
Button1.Enabled = True
End Sub

804 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 11:10:57 ]
Disposedで良かったっけ?
Showなら良かったんだっけかな。


805 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 14:48:09 ]
クラスにこういうプロパティを実装しています。
------------------------------
Private mHOGE As String

Public Sub New()
  Me.HOGE = ""
End Sub

Public Property HOGE() As String
  Get
    Return HOGE  ←※
  End Get
  Set(ByVal value As String)
    mHOGE = value
  End Set
End Property
------------------------------
※のところで、
「変数 'HOGE' は、値が割り当てられる前に使用されています。Null 参照の例外が実行時に発生する可能性があります。」
という警告が出るのですが、これは書き方がどこか間違っているのでしょうか。



806 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 15:15:46 ]
それ以前に無限ループになるのは確実だわな。

807 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 15:24:02 ]
これは俺もたまにやっちまう。
セッターの方だといきなりスタックオーバーフローでめげるぜ。

808 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 15:25:43 ]
いやセッターとも限らんか。
ともかく実行したらアウチ

809 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 15:37:55 ]
すみません。
Return mHOGEですよね。

よくよく読んだら理解できましたorz

810 名前:デフォルトの名無しさん mailto:sage [2008/09/18(木) 17:20:06 ]
XP3
.NET C#のSDKのURLください

811 名前:デフォルトの名無しさん [2008/09/18(木) 17:38:58 ]
kaiketusita


812 名前:デフォルトの名無しさん [2008/09/18(木) 21:36:31 ]
質問です。
パスワードを設定したExcelのファイル(オープン時にパスワードを求められる)があるのですが
これをC#からパスワードを自動入力で開く方法ってありませんか?

普通にダブルクリックしたときはパスワード入力、
C#で作ったプログラムで開くボタンをクリックすれば
パスワード入力なしでエクセルを起動するってしたいんです。

詳しいかた宜しくお願い致します。

813 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 01:47:24 ]
.NET1.1はSDKを含め、全てアンインストールしてもいいのでしょうか?
マイクロソフトは.NET1.1をどのような位置付けで考えているのでしょうか

814 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 11:44:15 ]
Change系のイベント連鎖についてですが

避けたくてもどうしてもTextBox1のChangeイベントでTextBox1.Textに
値を代入しなくてはならない、なんて場面はよくあると思いますが、
みなさんどうやって連鎖を回避されていますか?

フォームレベルのフラグ変数とか、
他コントロールのフォーカス使ったりとか、
わざわざ条件を自作するような技しかないんでしょうか。

815 名前:デフォルトの名無しさん mailto:sage [2008/09/19(金) 19:13:53 ]
>>814
>なんて場面はよくあると思いますが
いやそうそうないと思う。
というより、そんなことを思った時は大抵ロジックが不適切なんだと思う。

少なくとも処理内容と目的を具体的に書かないと納得できないよ。



816 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 10:12:29 ]
>>815
不適切なロジックでもやらないといけない場面はよくある
書く人の志向だけで作れるような、そんな恵まれた職場や
案件ばかりじゃないよ、実際

817 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 11:44:23 ]
まあそうだけど、でもそうとも限らん。
何も言ってないのにそういう事情を考慮する義理もない。


818 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 18:38:36 ]
>>813に回答お願いします

819 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 18:51:38 ]
>>818
おすきにどうぞ。
何が動かなくなっても知りません。

820 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:18:26 ]
>>813
普通に普通のランタイムと同じじゃないの?
それを使っているアプリがあれば、そのアプリが動かなくなるだけ。

821 名前:デフォルトの名無しさん mailto:sage [2008/09/20(土) 21:20:16 ]
よく分からんな、使ってないなら要らんし使ってるなら要るだろう。
別にランタイムだけなら残しといてもたいしたことないと思うが。


822 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 08:48:20 ]
ここの住人がそれを使ってるアプリが今後も量産されていくという展開をお読みになる、または1.1しかありえない2.0以降で.NET?はぁ?ということならば消さないでおきます
つまり2.0以降より必要度が低いのであれば消します
HDDが40GBしかないもんで

823 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 10:50:12 ]
そりゃ必要度は低いだろ。
だがわざわざ消すほどの容量でもないんでは?
ってだけだ。


824 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 11:48:57 ]
.NET1.1必須のやつはそう多くないし、消してもいいんじゃないかね。
必要になったらまた入れればいいさ

825 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:27:02 ]
そう言ってくださるならば消します

マイクロソフトは1.1を黒歴史的に捉えてると思わざるをえないので



826 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:34:24 ]
黒歴史は1.0であって、1.1は現役

827 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 14:58:39 ]
そりゃ、どんなソフトメーカーでも同じで、
旧バージョンは出来るだけ使って欲しくないよな。

828 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 15:16:49 ]
よく分からんが、仮に黒歴史と捉えてたとしてだからどうってもんでもないだろ。
開発者の立場ならそりゃ分かるが。


829 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:09:08 ]
動作必須環境に 「.NET1.1」と書かれているのと「.NET2.0以上」と書かれていた場合、
どちらがより多くの支持を集めますか?

830 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 16:57:03 ]
フリーソフト作者?
フリーソフトのユーザー限定ならドトネト製というだけで却下という人が多いんじゃないか。
よくも悪くも.NETはパッケージ以外の業務用ソフト以外ではあまり普及してないのが現実だろう。

というか、他人に背中押して欲しい優柔不断な奴かなんかしらんが、
そんなこと自分の頭で考えたらどうよ。

831 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:28:49 ]
1%でもよ多くの支持を集められそうな方はどちらですか?

というか、超初心者ですので曖昧な回答は必要ありませんし、
自分の頭よりは、あなたたちの意見の方が正確性が高いと判断しております

832 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:33:23 ]
なるほど、君は例えば「朝まで生テレビ」のような番組(まあ下らない番組だけど)
を見て「いつも結論がでない」とか的外れな批判をするそういうタイプの馬鹿なんだね。

833 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:35:32 ]
いいえ、人物考察等はスレ違いですし、必要がありません。
自重していただければこれ幸いと存じます

834 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:36:34 ]
Ver違いでなんか支持変わんねえよ 糸冬了
はい次の方〜

835 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:39:50 ]
私も質問です
.NET1.1のランタイムは削除して良いのですか?



836 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:47:42 ]
こんなの釣り人に決まってるだろ

837 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:49:21 ]
>>836
>>833

838 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:50:03 ]
.NET 1.1必須といえばVS2003やTurbo Delphiといった開発ツールくらいかなぁ。
大概の1.1用のアプリは.NET2.0上でも動く。

839 名前:デフォルトの名無しさん mailto:sage [2008/09/21(日) 17:59:35 ]
RinGOchは動かない

840 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 21:12:11 ]
>>812もお願いします。

841 名前:デフォルトの名無しさん mailto:sage [2008/09/23(火) 22:16:50 ]
ここに書いてある通りじゃダメなの?
msdn.microsoft.com/ja-jp/library/cc329882.aspx

っていうか、エクセル操作しようっていうのにMSDNもエクセルのVBAのヘルプも
見てないわけひょっとして?

842 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:48:52 ]
VB2008のExpressでプログラムの勉強を始めたばかりの者です
バックグラウンドでキーボード入力を監視するソフトを作りたいんですけど、入力文字を盗み見するところで悩んでいます
どういった方法が一般的でしょうか

843 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:52:39 ]
また水前寺清子か・・・

844 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 13:56:26 ]
いっぽんどっこの唄を思い出した

845 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 14:13:37 ]
若い子じゃわからないネタだし、わかる年代だとチートがわからんだろ



846 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 19:47:49 ]
両方のチーターが分かる年代でもキーローガーとチートが頭の中で
概念的に結びついてる奴はいないと思うわ。。

847 名前:デフォルトの名無しさん mailto:sage [2008/09/24(水) 20:29:07 ]
キーローガー作んなよボケが

848 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 01:36:52 ]
キーロガーつくるワケではないです
入力されたキーによって音を鳴らそうってだけなんです

849 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 01:48:40 ]
年貢とは納めるもの

850 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 06:29:06 ]
それワンツーワンツー

851 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 09:59:51 ]
まあキーボード フックでググれ
.NETでもできるみたいだぞ

852 名前:デフォルトの名無しさん mailto:sage [2008/09/25(木) 19:43:56 ]
ありがとうございます

853 名前:デフォルトの名無しさん [2008/09/28(日) 09:11:22 ]
.netで作ってる自分のプログラムからWordやExcelをモーダルで開くことってできますか?

854 名前:デフォルトの名無しさん mailto:sage [2008/09/28(日) 20:40:17 ]
お前のプログラムのことなんて知らんがな

855 名前:デフォルトの名無しさん [2008/10/02(木) 12:06:51 ]
ツリーコントロールにコンテキストメニューを設定しているのですが、
ノードを右クリックすると、一瞬そのノードが選択されたあと、すぐに
直前のノードにフォーカスが戻った状態でコンテキストメニューが開いてしまいます。
右クリックしたノードが選択した状態でコンテキストメニューが開くようにするには
どうすればいいでしょうか?



856 名前:デフォルトの名無しさん mailto:sage [2008/10/02(木) 17:04:26 ]
>>855
マウスダウン時にクリックしたノードを選択ノードに設定するとか
Dim hti As TreeViewHitTestInfo = Me.TreeView1.HitTest(e.Location)
If hti.Node IsNot Nothing Then Me.TreeView1.SelectedNode = hti.Node

857 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:11:10 ]
2008をインストールしていたのですが
Web Developerの方は完了後に出たリンク先からLive IDに入り登録キーをとれました
VC++,VBの方は閉じてしまって登録キーを得られるページがわからなくなってしまいました
登録キーを得られるページの入り方(アドレス)を教えてください

858 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:25:16 ]
MSサポセンに電話

859 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:27:36 ]
書き忘れました
Express Edition です

860 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:49:50 ]
じゃあ俺がサポセンで聞くから番号載ってるアドレスよこせ

861 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 19:59:20 ]
番号? DLインストールしたものなんですが
Webから取得できないんですか
なぜDeveloperだけできたんだろう?

862 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:13:35 ]
メール受信したか?

863 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:21:07 ]
はい、Developerのやつだけ

864 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 20:44:42 ]
ああ、登録のところからできそうです
お手数かけました

865 名前:デフォルトの名無しさん mailto:sage [2008/10/03(金) 23:52:34 ]
さいきん遊びで.net(C++)はじめたんですが、
javaプログラマが.netやるにあたりこれをみとけば
導入しやすいというサイト等ないでしょうか?

null判定やら整数判定やら、その他もろもろ一々
調べないといけないので効率わるいです。。。



866 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:01:43 ]
>>865
msdn.microsoft.com/ja-jp/library/ms228602(VS.80).aspx
C#に関するMSDNの記事としてはかなり親切で優秀

867 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:05:07 ]
ああC++/CLIか
先にC#やったほうが入りやすいんじゃね

868 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:10:24 ]
・・・なんで C++/CLI。その言語、C++ と CLI 両方に精通していないと
難しいから両方初心者なら基本お断りだぞ。いや、というかむしろ
そうでないと使う意味がない方が正確かも。

既存コード等があってそれとの相互運用したいとか、ちょっと細かく
最適化したいとかそんなときに使うもの。

869 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:13:44 ]
すごく限定された一部の特殊な目的のために部分的に使う言語であって常用するもんじゃない

870 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:16:09 ]
ネイティブのラッパー書くときは楽だよな

871 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:17:49 ]
でもあくまでラッパーまでなんだよね
それがMS推奨のスタイルみたいだし

872 名前:865 mailto:sage [2008/10/04(土) 00:25:35 ]
なるほど。
なんで選んだかというと、
C++の勉強がてら、あとはとりあえず.netも
みておくかと思ったからです。
あと.netあるのでいろいろ用意されていそうで
楽かな〜とも思いました。

873 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 00:33:39 ]
.NETやるならまずC#かVB.NET
C++/CLIだけやっても意味がないよ

874 名前:865 mailto:sage [2008/10/04(土) 00:45:21 ]
う〜ん、
いろいろドキュメントみた限りだと、C#やVBとならんで
C++も並列な位置づけで選択可能にみえたんですが・・・
たとえばwikipedia。

ttp://ja.wikipedia.org/wiki/%E7%94%BB%E5%83%8F:Diagram_of_Common_Language_Infrastructure_(ja).png

要はコンパイラさえあれば良いように見えて、
そしてC++コンパイラがあるので、C++を選ぶことに
躊躇がなかったんですよ。

875 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 02:02:44 ]
VC++コンパイラ(C++/CLI言語)はその中でも特殊で、
部分的に非.NETの(x86とかの)ネイティブな機械語を含むプログラム(混合アセンブリ)を出力でき、
そうでなくとも非.NETなプログラムとの親和性が大変良くて、
というかそもそも従来のC++の構文はそのままに.NET用の構文がまるまる追加されているだけで、
そのせいで非.NETと.NETを両方使おうとするとデータの変換が面倒だという具合。



876 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 02:12:51 ]
世界一の/clr:safe使いに俺はなる!

877 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 11:24:42 ]
アンマネージコードを混ぜないならC++/CLIをわざわざ使うメリットがないんだよね
自由度がほんの少し高いだけで、できることはC#と変わらない
文法が複雑でC#やVBより低レベルで面倒、VSのサポートも貧弱、情報少ない
C++ができる人でも学習コストは決して低くない(C#に移行した方が早いかも)

878 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 15:52:45 ]
んじゃWINDOWSでC++やるなら黙ってMFCか
WIN32API直接たたいてろってことですかね?

879 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 15:57:55 ]
ATL/WTL 忘れてる

880 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 18:35:36 ]
そもそもなんでC++なんだ

881 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 19:01:01 ]
VC++6.0ってもうゴミなの?

882 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 21:28:27 ]
使えるか使えないかなら使えるからごみというのはどうかだけど
不自由するか不自由しないかなら確実に超不自由する
さすがに 10 年前のソフトなので

883 名前:デフォルトの名無しさん mailto:sage [2008/10/04(土) 22:06:57 ]
MSDNが死んでます;;

884 名前:デフォルトの名無しさん mailto:sage [2008/10/06(月) 20:57:53 ]
Oracleへの接続をoo4oからODP.NETに変更したいのだが、
oo4oとODP.NETの差分をうまく吸収してくれるクラスって
どこかに公開されてないですか?

oo4oを使用していたときのロジックをできるだけそのままにしたい。


885 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 01:34:53 ]
以下のコードを実行するとStackOverflowExceptionが発生します。

array<String^>^fileEntries = Directory::GetFiles((String^)Directory::GetCurrentDirectory());

何がいけないのか、コールスタックを見ようにも見方が分からず・・・



886 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 12:34:20 ]
>>885
例外が起きている場所がそこでない可能性もあるな。
デバッグビルドになってないとか、設定で最適化がONになってるとか。


887 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 21:12:58 ]
C#を勉強しましたのでVisualC#2008でアプリケーションを作ろうと思っています

TableLayoutPanelでEXCELの枠固定みたいなことって出来るのでしょうか
作りたいアプリのカラムが結構な数になるので カラム2と3の間を固定できるようなプロパティがあれば教えていただけないでしょうか

TableLayoutPanel以外のクラスでも出来るのであればそれも教えていただけないでしょうか
よろしくお願いいたします

888 名前:デフォルトの名無しさん [2008/10/12(日) 21:15:02 ]
'Microsoft Visual Basic.NET 2003 の初心者ですが、質問させてください。
Imports System
Imports System.IO
Public Class Form1
Inherits System.Windows.Forms.Form
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim sr As StreamReader = New StreamReader("テスト.txt")
Dim line As String
Dim str01 As String
Dim str02 As String
Dim str03 As String
Do
' テスト.txt内の1行を読み込んだ後、それぞれ変数の中に入れたいのです凹
line = sr.ReadLine()
' 結果
'str01 = "a"
'str02 = "123456"
'str03 = "テスト00 "(256バイト固定)
' どういった方法があるのでしょうか??
Loop Until line Is Nothing
sr.Close()
End Sub
End Class
'********************************
'テスト.txt内容
'********************************
a,123456,テスト00(名前256バイト)
b,654321,テスト01名前
c,112233,テスト02
'********************************
ちゃんとした質問になっているのかさえわかりませんが、どなたかご指南よろしくお願いします。

889 名前:デフォルトの名無しさん mailto:sage [2008/10/12(日) 21:52:45 ]
何を聞きたいのかぐらいまとめたほうがいいと思うが

890 名前:デフォルトの名無しさん [2008/10/12(日) 22:15:04 ]
<<889
そですね汗 失礼しました。
文字列 "a,123456,テスト名"
カンマで区切られた文字列をそれぞれ変数の中に入れたいのですが、どういうやり方があるのでしょうか?
**結果**
Dim str01 As String = "a"
Dim str02 As String = "123456"
Dim str03 As String = "テスト名"
********
・・・あまりまとまってなぃかな凹
改めてご指南よろしくお願いします。m(_ _)m

891 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 00:07:19 ]
そういうのはCSVという
文字列と数字の扱いとか、エスケープするのかとかあるけど、
簡易的にはString.Splitとか使える

892 名前:デフォルトの名無しさん [2008/10/13(月) 14:18:15 ]
VC#2008 Professional Edition SP1,( .NET Framework 3.5 SP1)をWindows XP SP3上で使用しています。
Windows FormsでMDIアプリを作成しているのですが、MDIの親にImageListを置いている場合
MDIの親に置かれているImageListはMDI子フォームから参照するにはどうしたらよいでしょう?

ただし、コード上で必要なときに呼び出して参照することは既にできています。しかし、問題はデザイン画面上で
プロパティに出したいということです。
プロパティ画面上で ImageList : fMDIForm.ImageList1 みたく・・・
以前Delphiを使用していたときはuses節に参照したいクラスを記述して、デザイン画面上でプロパティから参照できました。
Web上の様々な情報や書籍を参照しても、MDIフォームに関する情報はあまりなく、困っています。

A) 解決する方法はある
B) デザイン上ではあきらめて必要なときにコードで記述するしかない。
C) ImageListなどどの画面でも共通で使用したいものは、あきらめてそれぞれの画面に置く
D) その他
のいずれかでしょうか。ご存じの方よろしくお願いします。

893 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:32:59 ]
D) ソースを晒せ

894 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 19:48:21 ]
2005以降でImageListって積極的な使い道というか、
それを使わないとできない事なんてあったっけ?

俺の認識では完全にObsolete扱いなんだけど。。

895 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 21:32:22 ]
AbsoluteにObsolete扱いですかそうですか



896 名前:デフォルトの名無しさん mailto:sage [2008/10/13(月) 21:36:58 ]
プロジェクトのリソースじゃダメなの?

897 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 17:46:23 ]
TabControlを上部に表示させ、
その下にGridDataViewを表示させています。

ウィンドウのサイズを小さくしたときに、
TabControlの位置と、DataGridViewの位置を変更させないようにして、
かつ、TabControlのサイズは変更させずに、
DataGridViewは上部分(TabControlの直下)は固定で、
ウィンドウを小さくした分だけ小さくさせるようにしたいんですが、なかなかうまくいきません。

あ、DockNoneでうまくいきました。てへ

898 名前:デフォルトの名無しさん mailto:sage [2008/10/14(火) 17:49:29 ]
なかなか思ったとおりにならないときは、間にコンテナかますのがいい。

899 名前:デフォルトの名無しさん mailto:sage [2008/10/21(火) 11:37:45 ]
スレッドについての質問です。
たとえば、TreeView.Nodes などのコレクションや、それに格納されているデータにアクセスする際も
Invoke を使用する必要があるんでしょうか。排他だけですむならかなり楽なんですけど。

900 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 17:07:53 ]
WCFでBasic認証付きのプロキシを超えるにはどう設定すればいいか、
ご存知の方はいらっしゃいませんか?

901 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 19:57:04 ]
プロジェクトとソリューションの違いを教えてください。

いろんなクラスをまとめているのがプロジェクト、と思っています。
そのプロジェクトをさらに上位から管理するのがソリューション?

両者の概念について分かりやすく書いてあるWebなどはないでしょうか?
(○確認○行のサイトと@ITのサイトは見ましたが、よく分かりません・・)


902 名前:デフォルトの名無しさん [2008/10/27(月) 20:53:31 ]
みなさんはデータを新規に書き込むとき、
TableAdapter.Updateで行いますか?
それともExecuteNonQueryで行いますか?

903 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 20:55:27 ]
>>901
一つのライブラリとか実行ファイルとかまとまった単位がプロジェクト。
何か解決したい課題があったときに、一つの実行ファイル・ライブラリじゃおさまらない時に
複数のプロジェクトまとめるのがソリューション。

904 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 20:56:41 ]
>>901
俺も完全に把握してるわけじゃないけど、
とりあえず1プロジェクトが1アセンブリに対応すると考えればいいんじゃないの?

そんで、プロジェクトはソルーション内の別のプロジェクト(つまりアセンブリ)を
「プロジェクト参照」できる。

だからよく使うライブラリ的なクラスとかユーザーコントロールなんかを
別のプロジェクトに切り分けておけば、他のアプリの時に流用が楽にできる。

これだけ聞くとコンパイル済みのクラスライブラリ(dll)でもよさそうだけど、
一旦dllにするとアプリにあわせて微妙にカスタマイズとかできないからね。

905 名前:デフォルトの名無しさん mailto:sage [2008/10/27(月) 21:44:40 ]
グループで作る時にプロジェクトごとに担当決めて管理者はこれをソリューションとしてネットワーク上でだな



906 名前:901 mailto:sage [2008/10/28(火) 20:53:41 ]
>>903, >>904
ありがとうございます。
今はまだなんとなくですが、今後会社で注意深くみてみると
両者の差は使い方で分かってくるような気がしてきました。

907 名前:デフォルトの名無しさん mailto:sage [2008/10/28(火) 21:12:21 ]
>>906
まあドクターパソコン(なんて知らんか…)じゃないけど
頭で考えるより実際やってみればすぐわかるよ。

908 名前:デフォルトの名無しさん mailto:sage [2008/11/14(金) 16:00:17 ]
VB2005で組んだWindowsアプリケーションを、
そのままASP.NET、WEBアプリケーションにすることはできないでしょうか。


909 名前:デフォルトの名無しさん mailto:sage [2008/11/15(土) 02:10:41 ]
すごく無理
とにかく無理
無理無理無理よカタツムリ

910 名前:デフォルトの名無しさん [2008/11/24(月) 14:03:02 ]
>>909
まるでラップのような>>909のセンスに嫉妬w.

911 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:24:53 ]
いいえ
プログラミングはロックです

912 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 19:52:53 ]
そしてプログラマはロックマンですね分かります

913 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 23:09:11 ]
>>911-912
エアーマン噴いたじゃねえかこの野郎wwww

914 名前:デフォルトの名無しさん mailto:sage [2008/11/24(月) 23:17:37 ]
ヲタ野郎どもの笑いのポイントは理解不能だ。
何が面白いの?意味わからん。

とにかく気色悪いんだよヲタは。

915 名前:デフォルトの名無しさん mailto:sage [2008/11/26(水) 10:56:42 ]
同族嫌悪ですね、わかります。



916 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 17:02:01 ]
.Netがインストールできません。

USB2-NFCというICカード・リーダ・ライタを買ったところ、
.Net3.0のインストールが必要でした。
tshimizu.cocolog-nifty.com/good_job/2008/06/usb2nfc.html
そこで、インストールしてドライバーを入れても反応しません。

このホームページによると
.Netがインストールされていれば
tshimizu.cocolog-nifty.com/.shared/image.html?/photos/uncategorized/2008/06/16/usb2nfc_5_2.jpg
の右上の画像の様にグレーになるはずなのですが、グレーにならないんです…。

このスレで良いのかわからないのですが、よろしくお願いします。

917 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:06:22 ]
なにか.netを必要としてる他のアプリケーションを起動してみて
普通に動作するかで.net frameworkが正常にインストールされてるか判別できるだろ

その先はスレ違いだ
余所で聞け

918 名前:デフォルトの名無しさん mailto:sage [2008/11/27(木) 18:13:06 ]
スレどころか板違い。ここは *プログラム* 板だから、使うだけの人が来る所ではない
追い返すだけではなんだから、幾つかアドバイスを

- .NETフレームワークがインストールされているかちゃんとした方法で確認する
- .インストール時にエラーが出たなら、エラーメッセージ全文を一字一句違わずコピペorメモる

この先は(疑問があったとしても)適切なスレを探してそちらへ

919 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 21:39:26 ]
Vistaで、Google Chromeのタブ周りのようにウィンドウの枠の透明部分を広くするにはどうすれば良いでしょうか。
環境はVista、 VisualBasic2008です

920 名前:デフォルトの名無しさん mailto:sage [2008/12/13(土) 23:44:43 ]
>>919
Win32のDWM APIを使う。

単純に食い込ませるだけなら、DwmExtendFrameIntoClientArea関数
blogs.wankuma.com/katamari/archive/2008/06/24/145387.aspx

透明部分の形状を自由に指定したければ、DwmEnableBlurBehindWindow関数。

921 名前:919 mailto:sage [2008/12/14(日) 12:41:34 ]
>>920
ありがとうございます。

922 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 11:00:51 ]
Visual Basic 2008 Express Editionで.NET Framework 2.0用のプログラムを作っています。
標準のヘルプであるMSDN Express ライブラリ 2008では一部の命令が抜け落ちていて見れません。
そこでこのヘルプの代わりに.NET Framework 2.0 SDKをVB側から(F1による適応ヘルプを)呼び出せるよう設定する事は出来ないでしょうか。
両方入れると容量を食うので困っています。

923 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 17:26:03 ]
完全なMSDNは無料でダウンロードできるよ
2.0SDKのMSDNはアンインストールしてそっち入れるといいよ

924 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 17:59:36 ]
完全版MSDN > MSDN Express + 2.0 SDK

925 名前:デフォルトの名無しさん mailto:sage [2008/12/29(月) 19:53:31 ]
もしくはフィルタなしにする
立ち上げるたんびにいちいち再設定するのが禿しくめんどくさいがタダだからやむを得ん



926 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 21:33:03 ]
猫が分からなくて
誘導されてきた
コンパイラインストよくわからない
誰か……

927 名前:デフォルトの名無しさん mailto:sage [2009/01/12(月) 22:08:48 ]
コンパイラインスト?
Visual C# 2008 Express Edition入れればすぐ開発できるけど、どこで詰まってるんだ?

どこからの誘導かと思ったが、スレ立てるまでもない質問スレからか
このスレは過疎ってるから、C#(.NET)の初歩的な質問は"ふらっとC#"に行った方が良いと思うぞ

あと、分からない事があった場合、可能な限り状況を詳しく説明して質問すると回答が貰えやすい

ふらっとC#,C♯,C#(初心者用) Part35
pc11.2ch.net/test/read.cgi/tech/1229519838/

928 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 11:03:39 ]
ごめんわかんねえ
Cなのだが
付録ROM入れたはずが
さっぱり分からない
bcc32とかいうショートカットができたけれど
HelloWorldで始める事が
できないのです
猫ある人いないでしょうか…

929 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 11:12:02 ]
ここは.NET関連だからスレ違い

930 名前:デフォルトの名無しさん mailto:sage [2009/01/13(火) 20:12:11 ]
ああ
インストロールのことね

931 名前:デフォルトの名無しさん mailto:sage [2009/01/15(木) 03:40:01 ]
ngenって、どう使うの?
一回やればずっと有効なの?

932 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 21:18:07 ]
C++のDLLをC#で使うためにC++/CLIのラッパーを書いています。

DLL関数の中に
InterfaceObject* Func();
のようなクラスのインターフェイスを返す関数が定義されてて
インターフェイスのポインタをプロパティに持つインターフェイスのラッパークラスを定義しました

virtual bool Get (DWORD &rNextLine) = 0; の抽象メソッドに対応するメソッドとして
bool Get(UInt32 %rNextLine); を定義し

DWORD value;
bool result;
result = プロパティ->Get(value);
rNextLine = (UInt32)value;
return result;

のように書いてビルドが通るようになったのですが。
もっとスマートにできないかなと悩んでいます。
return (プロパティ->Get(rNextLine))? true : false;
みたいに1行で書くためにで%ハンドル演算子をキャストするような方法はないでしょうか。



933 名前:デフォルトの名無しさん mailto:sage [2009/01/23(金) 22:42:53 ]
こういう風にできる。
pin_ptr<int> p = &rNextLine;
return プロパティ->Get(*p);
ただ、pinしないそっちのほうが性能では優れていそうな気がする。

934 名前:932 mailto:sage [2009/01/24(土) 00:00:01 ]
>>933
pin_ptrについて調べてみます。
ありがとうございました。

935 名前:デフォルトの名無しさん [2009/02/01(日) 15:21:56 ]
.NETぢゃないライブラリならアプリと同梱して自動でインストールできるのに、
.NETってMSのサイトからDLして別途インストールさせないといけませんよね?
これ、自分で勝手にファイル配れるようになってればまだマシだったのに、
いろいろなバージョンをDL、インストールしないといけない現状はいかがなものかと思います。

.NETって騒ぎ始めたあともMS謹製のOfficeは.NETじゃなかったと思うんですが、
やはりうざすぎて嫌われるのを予知していたのでしょうか



936 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 15:25:43 ]
配れます

937 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:19:52 ]
勝手に.net最新版をインストールしても、他のアプリケーションに悪影響を及ぼすことは
ありませんか?
あるいは他のひとに違うバージョンとかパッチをインストールされても動作が変わったり
する恐れはありませんか?

938 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:23:53 ]
ない
勝手に適当に選んでくれる

939 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:45:00 ]
そうでもない。
2.0以降は大丈夫だが。
1.0-1.1以降
1.1-2.0以降
は動作は保障されない。


940 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:47:20 ]
>>939
どうせ書くなら「まともな」日本語で頼む。

941 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:49:19 ]
理解できないの?ハハッワロス

942 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 16:56:13 ]
>>939
最新版をインストールしても古いのが使われるよ

943 名前:デフォルトの名無しさん mailto:sage [2009/02/01(日) 22:14:36 ]
逆に新しいので使わせたかったら、
古いのをアンインストするか、
構成ファイルでバージョン指定
<configuration><startup>
   <supportedRuntime version="v2.0.50727"/>
   <supportedRuntime version="v1.1.4322"/>







[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<234KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef