いてつくブログ

2ちゃんねるのスレッドをコピペしてまとめてみるブログ

クラス

PC等C#, C♯, C#相談室 Part74

1 :デフォルトの名無しさん:2012/07/14(土) 13:52:30.23
前スレ
C#, C♯, C#相談室 Part73
http://toro.2ch.net/test/read.cgi/tech/1338512087/

Visual Studio 2010 Express
http://www.microsoft.com/japan/msdn/vstudio/express/default.aspx

180 :デフォルトの名無しさん:2012/07/27(金) 12:03:57.13
すんません、C#でこういうことできますか?

this.txtbox1.text="fuga";

a="this.txtbox1"; //または a="this.txtbox1.text";
&a.text="hoge"; //または &a="hoge";

b=this.txtbox1.text;
//b 出→ hoge

これの名称もわからず直な質問ですが理解できた方おしえてください。

191 :デフォルトの名無しさん:2012/07/27(金) 20:20:13.60
アプリをずっと回しているとメモリをガンガン消費しやがるな。



192 :デフォルトの名無しさん:2012/07/27(金) 20:21:06.40
GC.collect();

ってやっても意味が無いのか?

193 :デフォルトの名無しさん:2012/07/27(金) 21:12:21.63
>>191
環境と再現コード

194 :デフォルトの名無しさん:2012/07/27(金) 21:45:59.56
>>192-193
99%釣りだから触るな

196 :デフォルトの名無しさん:2012/07/27(金) 22:16:45.26
>>193
timerイベントの中でガリガリやってるので・・・
もうちょっとあたりをつけてみます。

>>194
釣りじゃねーよ。はげ。

200 :デフォルトの名無しさん:2012/07/27(金) 22:26:21.34
あんな一言で自分のバグ以外に原因を追求しようとするなんて
釣りじゃなかったらただの初心者だろw

201 :デフォルトの名無しさん:2012/07/27(金) 22:51:12.82
>>200
Webbrowser Navigate でメモリを消費してるっぽい。
調べてみたらどうも既知の問題みたいだな。

まいった。どうしようか。チックイベントでやってんだが。

218 :デフォルトの名無しさん:2012/07/28(土) 09:14:32.91
>>180です、メニューとかはメインFormを動的に作成させるよう仕込んだらDBのデータ元でメニュー管理や作成はできました。
ただFormなのですが、、説明が。。ぶっちゃけると
FormHoge.cs
FormHoge.Designer.cs
ってファイルをディレクトリから拾ってきて動的に実行したいって事なんです。。MDIFormで例をあげると
親だけはプロジェクトからコンパイルなどを行い。子Formらはコンパイルせず、えっと。。ファイルから立ち上げる。。みたいな?
説明むりスマソ
phpクラス読み込んでるんと似たような感じです。。
またはForm単一でコンパイルしたファイルみたいなのあるんですかね?

たぶん何いってんだこいつって思いでしょうが、説明がうまくできません、すまん

264 :デフォルトの名無しさん:2012/07/30(月) 17:51:42.68
ちょいと相談に乗ってくれ
テキストファイルを解析するツール作ろうとしてるんだけど
その入力フォーマットが空行で区切られたブロック毎に振り分け先を変えるってもの
ブロックの種類は、中に含まれてる特定の文字パターンで決まる
最初正規表現でやろうと思ったんだけど、複数行だと上手くヒットしない
このまま正規表現で進めていいものか不安になってきた
もしもっとマッチする技術があるなら教えて欲しい

297 :デフォルトの名無しさん:2012/08/01(水) 14:56:08.08
別スレッドで処理しろってのは正しいけど、Threadクラスはダメだって。
あれは生で使うものじゃない。
.NET 4以降ならTask、それ以前ならBackgroundWorkerとか。

321 :デフォルトの名無しさん:2012/08/01(水) 22:48:05.88
なんで、スレッドの話になるとスレッドがあれるんだろ?

さて、それはさておき質問させてください。

mene_strip コントロールをを初めて使い始めたんですけど、
マウスが上位階層の項目の上にフォーカスがあたったら
子要素を展開させたいんですけどどうすれば良いでしょうか?

335 :321:2012/08/02(木) 20:44:48.09
そんな事より誰か

オラにアイデアおぉううう

336 :デフォルトの名無しさん:2012/08/02(木) 20:49:17.25
>>>335
Windows Formのならデフォでそういう動作になってると思うんだけど...


337 :321:2012/08/02(木) 20:50:30.38
>>336
WEB系の開発が多かったから

JavaScriptのHoverイベントみたく展開したいのですよ。
それがどうもユーザライクな動きに見えます。

339 :デフォルトの名無しさん:2012/08/02(木) 20:57:08.55
>>337
言ってることがよくわからんが、だからデフォでそういう動作になってるって。

っていうか、たぶん問題の内容が伝わってないんだな。
最低でも他人に問題が伝わるように書かないと誰も回答してくれないと思うよ。

361 :デフォルトの名無しさん:2012/08/04(土) 17:50:35.62
C#のWindowsFormからデータ取得を押した時に
Webサーバ側で基本認証されたサイト上にID・PASSを送信し
認証が突破された場合には、
WEBサーバから特定のデータをクライアントに戻したいと思います。

これを実現する為にはどうすれば良いのでしょうか?

■図

Windows Form

実行 ボタンの押下

ID=takesi PASS=komaneti

認証突破

http://datatoruzo.com/get_data.php

"komaneti,komaneti2,komaneti3" をクライアントに戻す。


362 :デフォルトの名無しさん:2012/08/04(土) 18:12:18.65
突破ってなんか攻撃しているかのようだな

363 :デフォルトの名無しさん:2012/08/04(土) 18:19:02.72
>>361
認証が必要なページをダウンロードする
http://dobon.net/vb/dotnet/internet/usecredentials.html

サーバーサイドのphpの方は知ったことではないので適当にやってくれ

366 :デフォルトの名無しさん:2012/08/04(土) 20:30:25.71
>>363
サンキューやってみる。
DLってのが若干気になるけどね。

>>362
自分のサーバだから何をしようと勝手でしょ?



390 :デフォルトの名無しさん:2012/08/07(火) 13:55:49.60
http://www.02.246.ne.jp/~torutk/javahow2/commandline.html#doc1_id41
ここのサイトの

public class MyApplication {
private static int number;
private static String name;

public static void main(final String[] args) {
parseOptions(args);
:
}

private static void parseOptions(final String[] args) {
if (args.length<2) {
System.err.println("引数指定が不足です。");
System.exit(1);
}
number = Integer.parseInt(args[0]);
name = args[1];
}
}

このソースてすが
parseOptions(args);
この部分で引数としてargsを渡してるけど、
argsの中身ってつまりな何なのかわかりません…

ご教授お願いします。

443 :デフォルトの名無しさん:2012/08/09(木) 23:18:14.45
C#でエクセルを扱うアプリケーションを作ろうとして、例えば、あるセル番地を読み込むって場合に


var hage = sheet.Cells[1, 1];


ってハードコーディングしてしまうと、将来的にセル番地に変更が出たときに面倒なので変数で置き換えたいんです。
これ自体Excel VBAなどでは常識のような作法ですが、
Excel VBAの場合、適当なモジュールにConstでセル番地を宣言していましたが、
C#の場合は、何処にそういう定数を書くべきなのでしょうか?


(1) 外部の人間に保守・更新をする可能性がある場合、外部ファイルに定義する。
(2) 外部の人間は保守・更新をする可能性がない場合、内部ファイルにfinal変数で定義する。


と思っているのですが、(1)は、外部ファイル参照のオーバーヘッドがやや心配ですし、
そもそも、どういうファイルに定義するべきなのかも分かりません。

resxファイル?
txtファイル?
iniファイル?

どれを使うのが妥当なのでしょうか?

470 :デフォルトの名無しさん:2012/08/12(日) 10:06:46.29
.Net Framework 4.0 をWindows XP に入れて
同じプログラムを実行しているんですが

3台のうち1台のみ正常に動作し
他の2台については動きが怪しいです。

アプリは起動するものの
実行中にエラーは出ないものの特定の処理をスキップしている様なのです。

ここで疑問なのは、仮にプログラムのバグであれば3台とも
動かないハズなのですが1台だけ問題無く動くのです。

Windows 7 のマシンでやると全て正常に動作しています。

536 :デフォルトの名無しさん:2012/08/18(土) 02:58:57.36
An unmanaged resources are still unmanaged even if we use IDisposable.
The IDisposable just defines a general way to release some resources.

An managed resources are released automatically because GC will do the right thing at last, but it is not for unmanaged resources.

Therefore, a way is prepared for programmers that the resources to be released correctly, that is IDisposable.

537 :デフォルトの名無しさん:2012/08/18(土) 03:25:13.45
Corrected version of >>536

[For foreigners]

Unmanaged resources are still unmanaged even if we use IDisposable.
IDisposable just defines a general way to release some resources.

Managed resources are released automatically because GC will eventualy do the right thing, but it is not for unmanaged resources.

Therefore, a method is prepared for programmers so that the resources will be released correctly, that is the IDisposable.

541 :デフォルトの名無しさん:2012/08/18(土) 14:46:59.50
>>537
アンマネージドリソースはアンマネージドリソースだって言ってるだけだな。
言っちゃ悪いけど、ただの循環論だね。

問題は、最初から言ってるように内部でアンマネージドリソースを使ってるもの(例えばForm)をアンマネージドと
呼ぶべきかどうかじゃないのか。

548 :デフォルトの名無しさん:2012/08/18(土) 17:03:18.78
>>541
using,dispose,closeを呼ばないとファイナライザ走るまでメモリ以外のリソースが食いっぱなしになるならアンマネージド扱いしていい

551 :デフォルトの名無しさん:2012/08/18(土) 17:25:54.31
なるよ
だってアンマネージドリソースでもラップしてIDisposableを正しく実装したら
using Dispose Close ファイナライザのどれかでちゃんと解放してリソースリークから保護してくれる
これはすでにマネージドリソースそのもの

557 :デフォルトの名無しさん:2012/08/18(土) 17:51:10.03
>>551
残念ハズレ

665 :デフォルトの名無しさん:2012/08/23(木) 17:15:58.57
同じような話がスレが変わる後とにでてきて説明するのも疲れるな

674 :デフォルトの名無しさん:2012/08/23(木) 22:29:34.27
contentWindowでググれ
C#関係ないからもう来るな

675 :デフォルトの名無しさん:2012/08/23(木) 22:41:16.74
グーグルの検索なんてURLに検索文字列をエンコードしてリクエストするだけだカス

676 :デフォルトの名無しさん:2012/08/23(木) 22:44:07.66
初心者ほどクドイ真似したがるよな

695 :デフォルトの名無しさん:2012/08/23(木) 23:49:07.55
しかし、疑問があるな。
Google 検索 ボタンのソースを見ると↓になっていて、
typeにsubmitなんて記述が無いのに

<button id="gbqfba" aria-label="Google 検索" name="btnK" class="gbqfba gbqfba-hvr">
<span id="gbqfsa">Google 検索</span>
</button>

プログラムから追いかけると↓で正常に認識されてるんだよなぁ。不思議だ。。。
if (type.Equals("submit"))
{
//click

}

706 :デフォルトの名無しさん:2012/08/25(土) 09:39:05.97
プログラマのみなさんは2ちゃんブラウザは何を使っているの?

711 :デフォルトの名無しさん:2012/08/26(日) 18:54:29.29
質問なのですが、
class NumUpDownEx<T> {
 private T m_value;
private System.Windows.Forms.NumericUpDown m_ud; // これは適切に与えられる前提
 T Value { get (T)(object)m_ud.Value; } } // decimalをTにキャスト
 ...
}
は一応コンパイルできて動作もするのですが、(object)へのキャストを無くして、
decimalからTに直接キャストさせる方法って無いですか
(「decimalからTにキャストできる」ということを制約で与える等。)

729 :デフォルトの名無しさん:2012/08/27(月) 00:11:53.10

2chに一度に書き込める文字数は限られてるでしょ?

731 :デフォルトの名無しさん:2012/08/27(月) 00:27:18.44
>>729
こういう2ch専ブラのレスを表示するところをwebBrowserでやる場合に
こんな感じのコード書いたけど結果は上で書いたような動作するんだよ
http://ideone.com/oIgKB

740 :デフォルトの名無しさん:2012/08/27(月) 11:03:48.61
逆アセンブルされないアプリを作る場合
C++しかない?

747 :デフォルトの名無しさん:2012/08/27(月) 11:20:33.70
>>740
定番回答の三ヶ条
・お前の書いたコードなんて読みたがるやつは居ない
・カジュアルハック対策なら難読化しとけ
・隠したいデータはクライアントに渡すな

777 :デフォルトの名無しさん:2012/08/27(月) 21:21:19.16
自分で自力で考えて書いたコードがたまたま権利違反してたらアウトっておかしくね?

778 :デフォルトの名無しさん:2012/08/27(月) 21:25:01.79
>>777
完全に自力で書いたなら問題ないでしょ。特許侵害は起こりうるけど。
GPLと気付かずネットに転がってたコード片をコピペしただけでも感染する。

783 :デフォルトの名無しさん:2012/08/27(月) 21:41:39.31
>>778
一番悲惨なパターンはネットに転がっていたソースはフリーで、
後になってGPL判明でまとめてGPL感染するパターンかなw

回避というか、気付いてしまったときに、他のライセンス、つまり、
マルチライセンスの確認するぐらいしか今のところ手はないのかな。


787 :デフォルトの名無しさん:2012/08/27(月) 21:55:21.06
>>783
それいいな
dobonみたいなサイト作って釣ってコピペグラマ全滅とかおもしろそう

800 :デフォルトの名無しさん:2012/08/27(月) 22:29:45.78
GPL汚染の範囲をハッキリさせるために、誰か裁判やりまくってくれないかな

802 :デフォルトの名無しさん:2012/08/27(月) 22:41:42.02
.NET Frameworkを配布物に同梱したらアウトだよね
Windowsにプリインストールされてる.NETを利用するのはどうなんだろうな
.NET Frameworkが「システムライブラリ」かというと微妙だし
OSに含まれてるかどうかはWindowsのバージョンにもよるしなあ

831 :デフォルトの名無しさん:2012/08/28(火) 21:44:37.73
簡易Webサーバもどきみたいのを作っているのですがマルチスレッドについて詳しく解説している書籍などはありませんでしょうか
知っていたらお願いします
.net 3.5なので非Taskであれば嬉しいです

833 :デフォルトの名無しさん:2012/08/28(火) 23:12:22.04
あと、Thread建ててその中で同期I/OとかSleep書いてるのもアウト。

834 :デフォルトの名無しさん:2012/08/28(火) 23:33:14.35
>>833
> あと、Thread建ててその中で同期I/O
Unityだとそうしないと固まるAPIがあったわ

847 :デフォルトの名無しさん:2012/08/29(水) 17:18:14.08
stringプロパティをもつクラスの配列を、AtoZでソートしたいんだけどどうすればいいかな。Listを使わずにする方法があれば教えろください

849 :デフォルトの名無しさん:2012/08/29(水) 17:46:27.97
Array.Sort(array, (x, y) => x..String型のプロパティ.CompareTo(y.String型のプロパティ))
または
array.OrderBy(x => x.String型のプロパティ) 配列にしたければ最後に.ToArray()を付ける
foreachするだけなら後者でToArrayなしがおすすめ

862 :デフォルトの名無しさん:2012/08/29(水) 20:19:54.08
>ConditionalWeakTable
そんなもん追加されたのか。WeakReferenceを使うほとんどの用途はこれで十分だな。
Javaの弱参照は「GCしてもいいけどなるべくGCしないでね」という指定ができるから
キャッシュに使いやすい

894 :デフォルトの名無しさん:2012/08/30(木) 21:31:46.25
>>862の話はJVMなどの設定じゃなくてクラスの違いじゃね?
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/ref/WeakReference.html
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/ref/SoftReference.html
弱参照(すぐ消える)とソフト参照(余裕があれば残してくれるかもしれない)

895 :デフォルトの名無しさん:2012/08/30(木) 21:34:36.11
>>894
そんなもんユーザーコードレベルで実装できるわけないんだから
実際の挙動は当然JVMの実装次第でしょ

899 :デフォルトの名無しさん:2012/08/30(木) 21:44:10.77
>>895
残してくれる「かもしれない」って書いてるだろ
実装次第だからネックにもならないし、設定も特定の実装に依存もしない

ドキュメントにあることだけを前提にすべき
少なくともキャッシュしたい意図をJVMに伝えることは出来る

904 :デフォルトの名無しさん:2012/08/30(木) 22:06:11.17
>JavaだけでなくC#でもな

取ってつけたような一行w

906 :デフォルトの名無しさん:2012/08/30(木) 22:09:00.00
○○だけではなくC#もな、と付け加えることによって、あらゆる話題を扱うことを可能にする
このままこのスレはWin32APIスレの二の舞になってしまうのか!?

ご期待ください

909 :デフォルトの名無しさん:2012/08/30(木) 23:43:16.90
>>904 >>906
Monoや.NETCFとまで書かないと読み取れないか
色々残念だな

923 :デフォルトの名無しさん:2012/08/31(金) 01:03:19.31
お前らって高学歴なの?
1年ぐらい勉強してもお前らの会話さっぱりわからないんだが
大学でちょろっとC言語習った程度の俺には無理なのか

935 :デフォルトの名無しさん:2012/09/01(土) 19:33:01.22
ある条件を満たすまでスレッドをブロックしたとき,
昔はwhile(!条件){ Sleep(1); }を使っていました。
しかし、SpinWait.SpinUntil()を使うとよいと聞いたのですが、
両者にどのような違いがあるのでしょうか?
また最近の実装方法を知りたいのですが、Taskは終了するまでブロックという
使い方が主なようですが、条件でブロックすることはできないでしょうか?


http://toro.2ch.net/test/read.cgi/tech/1342241550/l50/../人気ブログランキングへ

PC等Objective-C [ObjC part:7];

1 :デフォルトの名無しさん:2012/02/27(月) 17:21:46.39
Objective-C(オブジェクティブ シー)はプログラミング言語の一種。C言語をベースにSmalltalk型のオブジェクト指向機能を持たせた上位互換言語。
 (Wikipedia:http://ja.wikipedia.org/wiki/Objective-C より)

Objective-C [ObjC part:6];
http://toro.2ch.net/test/read.cgi/tech/1313891268/

Objective-C [ObjC part:5];
http://hibari.2ch.net/test/read.cgi/tech/1279730299/

Objective-C [ObjC part:4];
http://pc12.2ch.net/test/read.cgi/tech/1239721860/

Objective-C [ObjC part:3];
http://pc12.2ch.net/test/read.cgi/tech/1186543111/

Objective-C
http://pc11.2ch.net/test/read.cgi/tech/1106983092/

Objective-C
http://pc5.2ch.net/tech/kako/990/990574267.html

2 :デフォルトの名無しさん:2012/02/27(月) 17:23:02.21
*** プログラム技術板 ***
【マック】Macintoshプログラミング質問箱
http://toro.2ch.net/test/read.cgi/tech/1113058054/

*** 新・mac板 ***
Cocoaはさっぱり!!! version.16
http://anago.2ch.net/test/read.cgi/mac/1307162542/

Macでプログラミング{10}
http://anago.2ch.net/test/read.cgi/mac/1248682344/

iPod touch/iPhone ネイティブアプリ製作 ver.16
http://anago.2ch.net/test/read.cgi/mac/1312723856/

3 :デフォルトの名無しさん:2012/02/27(月) 17:23:48.25
*** 本家 ***
Objective-C 2.0 プログラミング言語
http://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjectiveC/

Introduction to The Objective-C 2.0 Programming Language
http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/introObjectiveC.html

そのほか英語
http://developer.apple.com/documentation/Cocoa/ObjectiveCLanguage-date.html

*** 書籍 ***
荻原本 第3版
http://amazon.jp/dp/4797368276

HMDTダイナミック本
http://amazon.jp/dp/4861006414

195 :デフォルトの名無しさん:2012/06/03(日) 21:07:21.67
そんなんで満足するわけねーだろ!クソが
笑いなんて要らねーんだよ。
普通でいいんだよ。贅沢は言わない。普通で。
iphoneの開発はしたいから本買ってきたらアップルのどこかでダウンロードしろって書いてあったから
しようと思ったら英語でわからんかった。
お前らはどうやって分かった?
英語できるやつばかりか?

302 :デフォルトの名無しさん:2012/06/14(木) 23:01:12.97
[delegate AdelegateMethod:...]
と、Aクラス内(でなくてもいいんだけど)で実行され、delegate の AdelegateMethod:... が呼ばれるだけ
BクラスオブジェクトでA.delegate=self と事前にしているなら、delegateがBクラスオブジェクトなんだから、Bクラスのメソッド(AdelegateMethod:...)が呼ばれるだけ
としか言えない

304 :デフォルトの名無しさん:2012/06/14(木) 23:57:20.03
>>302
事前にA.delegate=selfしてる場合なんですけど、その時はAクラスのADelegateMethodの内容に書かれている内容→BクラスのAdelegateMethodに書かれている内容、という流れになるんですかね??

349 :デフォルトの名無しさん:2012/06/16(土) 05:13:41.84
クラスの実装においても, インスタンスヴァリアブルへの(バキューン!)は, イニシャライザを除いて,
インスタンスヴァリアブルに直接アクセスするのではなくアクセッサを介して行うべきだ,と聞いたのですが
インタフェースとインプリメンテーションでインスタンスヴァリアブルの挙動を変えたい場合,
ようするに外からはreadonlyにしたいけれども, クラス内ではreadwriteにしたいとき,どのようにすべきなのでしょうか?
インタフェースにはreadonlyで宣言し,実装ファイルではクラスエクステンションを用いて,
プロパティ宣言をreadwriteでオーバーロードしようとすると,
Property attribute in continuation class does not match the primary class
と怒られてしまうのです.

350 :デフォルトの名無しさん:2012/06/16(土) 05:37:08.38
>>349
インスタンス「変数」でいいよw

Hoge.h
@interface Hoge
@property (readonly) id hogeValue;
@end

Hoge.m
@interface Hoge ()
@property (readwrite) id hogeValue;
@end

@implementation Hoge
@synthesize hogeValue;
...
@end

で、別にエラーにならずに、ちゃんと機能するけど?



352 :デフォルトの名無しさん:2012/06/16(土) 06:21:32.30
>>350
ありがとうございます。
readwriteだけだと上手くいくんですね。
strong, readwrite, atomicだと警告が出ますが
readwriteだけでも強参照にはなるのでしょうか?

353 :デフォルトの名無しさん:2012/06/16(土) 09:12:54.31
>>352
readonly 以外の部分は同じじゃないとダメ

354 :デフォルトの名無しさん:2012/06/16(土) 15:51:20.56
>>353
ありがとうございます.
なぜか, readonlyの方だけstrongをつけていなかったのですが, 確かに, readonly/readwrite以外同じにしたら警告が消えました.
サブクラスの実装を, スーパークラスと同じ実装ファイル内に書いて, クラスエクステンションを使えば, 親クラスのプロパティを隠蔽しつつ, サブクラスからはアクセス出来るように出来るので, 便利ですね.
しかし, プロパティを介してアクセスを行うと,インスタンス変数にアクセスする度にアクセサメソッドの呼び出しの処理や, さらにatomicにしているといちいちロックの処理が挟まれ, 無駄な処理が多くなる気がするのですが皆さんどうされてますか?

355 :デフォルトの名無しさん:2012/06/16(土) 16:00:17.46
本当にそこがボトルネックになるならば直接アクセスにすればいいし、
なるかどうかわからないのであれば気にしなければいい

atomicはたいして意味がないから基本nonatomicでいい

357 :デフォルトの名無しさん:2012/06/16(土) 19:59:01.73
>>354
気になるなら直接インスタンス変数使えばいいんじゃないの
getterはatomicの時(スレッド間で同期が必要なもんとか)にしか利点が無いような
setterは利点あるし、わざわざインスタンス変数直接ってのをするほど使わないような

364 :デフォルトの名無しさん:2012/06/17(日) 06:40:36.95
>>355>>357
ありがとうございます
うーんバンバンdispatch_asyncしてるのでatomicの方が安全かなと思うのですが難しい所ですね
atomicにしてても, インクリメント等するときや複数のプロパティをまとめてゲットしなきゃいけないときはさらに外側で@synchronizedしないといけなかったりするので
@synchronizedばっかりになってオーバーヘッドになりそうな気も

368 :デフォルトの名無しさん:2012/06/17(日) 18:22:09.87
スレッドプールとかGCDとかで複数のスレッドを使うようにするのは、
そのまま複数のCPUコアを均等に無駄なく使う事に繋がるのでは。

371 :デフォルトの名無しさん:2012/06/17(日) 23:55:29.52
>>368
そういうレベルの話じゃない。

ただ単にマルチスレッドな話だと、スレッドセーフにするために「ロック」や「セマフォ」を使いましょう。
といった内容になるだろう。

平行処理の方は、複数のCPUコアを同時に動かすことでパフォーマンスを稼いでいるので、
「ロック」や「セマフォ」などでスレッドを一時停止させては意味がない。
つまり、「ロック」や「セマフォ」を使わずに、スレッドセーフなプログラムを組む。
といった内容になります。

スレッドもCPUコアと同じ数しか作らないので、逆に言うとシングルCPUな環境だと無意味。
シングルCPUな環境なら、NSRunLoopを活用した方がよい。


378 :デフォルトの名無しさん:2012/06/18(月) 02:21:37.18
>>371
CPUで計算するだけなら並列処理にはマルチコア必要だけど、時間のかかるI/Oと
他の処理並行動作させたりするのもマルチスレッド化の大きな目的だから、
コア数どうこうは関係無いよ。排他制御の類は必ず必要だし、シングルコアだから
スレッド化不要とかロック多用して良いって事にもならない。
あと、単にカウンタ値増減したり、キューにデータ突っ込んだりとかは
atomic operationが用意されてるので(OSAtomicなんとか)これを上手く使えば
ロックの類は使わなくて済む。

411 :デフォルトの名無しさん:2012/06/20(水) 15:21:00.86
ARC=Auto Refarence Counting
自動で参照カウンタを操作する
自動で参照カウンタを
自動で
自動

426 :デフォルトの名無しさん:2012/06/20(水) 21:49:28.15
>>411,412,416
ありがとうございます。
ということは, 自動で変数を用意して代入してから引数として与えてしかる後に解放してくれるんでしょうか
単にretainやreleaseやautoreleaseを適切な場所に挟んでくれるだけだと思ってたので、
MRCだと挟めない書き方をするとダメだと思ってたんですが一時的に変数に移すのまで自動でやってくれるんですね・・・
- (NSString *)URLPathComponent1 {
return [[[[[self url] pathComponents] objectAtIndex:1] retain] autorelease];
}
↑これだと、この後メソッドから抜けるときに更にもう一度autoreleaseが掛かるはずなので、オーナーシップの数を超えてautoreleaseされると思うのですが大丈夫なんでしょうか?

484 :デフォルトの名無しさん:2012/06/30(土) 22:09:57.09
NSPredicateについて聞かせてください.
あるentityAから, 1:n対応でentityBと双方向のrelationshipがあるとき,
かつ, entityAに関連づけられたclassAのインスタンスaが既知のとき,
aとrelationshipを持つ, entityBに関連づけられたclassBのインスタンスb1, b2, ... bn全てをfetchするには,
NSPredicateじゃダメで, classBのインスタンスをどかっと全部fetchしてからプログラム上でaとrelationshipがあるものを抽出する...という形になるのでしょうか.

494 :デフォルトの名無しさん:2012/07/01(日) 00:20:04.31
>>484
CoreDataな話なんだよね?
インスタンスaに、インスタンスbへのrelationshipを表すNSSet型のプロパティbsがあるはずだよね?


504 :デフォルトの名無しさん:2012/07/01(日) 15:43:52.32
>>494-495
ありがとうございます。もちろん最初に書いたとおり、
全部オブジェクトとしてとってきてから、b.a(bからaへの対1参照)なり、a.bs(aからbへの対多参照)なりのプロパティで比較すれば出来るのですが、
コードをシンプルにするのとパフォーマンスを改善するためにNSPredicateで条件指定出来ればいいなと思いまして・・・

505 :デフォルトの名無しさん:2012/07/01(日) 23:29:14.28
>>504
> 全部オブジェクトとしてとってきてから、b.a(bからaへの対1参照)なり、a.bs(aからbへの対多参照)なりのプロパティで比較すれば出来るのですが、

ん??
要するに、EntityAに1:NでrelationshipしているEntityBを全て取得したい、ということなんだよね?

ClassA* a = fetchObject();
NSSet* bs = [a valueForKey:@"relationshipB"];

これで変数bsの中に、EntityAに1:NでrelationshipしているEntityBが全て入っていると思うのですが。


547 :デフォルトの名無しさん:2012/07/11(水) 00:35:47.36
LabelとTextFieldがあって、ボタンが押されたら
LabelにTextFieldの数値を加算するメソッドで
これをただ足すのではなく、数字がどんどん増えるようにしたいんだけど、
一気に増えちゃうのよね。どうすれば良い?

以下ソース
- (IBAction)addScore:(id)sender {
[self.view endEditing: YES];
NSInteger i;
NSInteger j;
i = [scoreText.text intValue];
j = [addScoreText.text intValue];
addScoreText.text = [NSString stringWithFormat:@""];
for (NSInteger l = 0; l <= j; l++) {
scoreText.text = [NSString stringWithFormat:@"%d",i + l];
}
}

627 :デフォルトの名無しさん:2012/07/22(日) 15:28:40.17
質問です。__weak修飾子について調べていたのですが、
下記の1回目のNSLog()をコメントアウトすると2回目のNSLog()で
aにnilが代入されているのですが、これはなぜでしょうか?
NSLog()がaを保持するのでしょうか?

__weak id a;
id b = [[NSObject alloc] init];
id c = [[NSObject alloc] init];

a = b;
NSLog(@"a:%p", a); // このNSLogをコメントアウトする次のNSLog()のaはnilが代入されている
b = c;
NSLog(@"a:%p", a);

665 :デフォルトの名無しさん:2012/07/31(火) 13:59:37.07
NSThreadで起動したスレッドの内部で、オブジェクトのbool型変数がFALSEに
なるまでwhile()ループする処理を入れています。
で、ループの直前でNSTimerでタイマを仕掛け、タイマ発火時にFALSEにする
ようにしましたが、ループが回っている間はタイマが発火しなく、無限ルー
プなってします。

ループの最後に[[NSRunLoop currentRunLoop] run];でメッセージを処理さ
せるようにすると指定時間でタイマが発火するのですが、runから処理が戻る
まで3秒以上かかってしまっていて、使えません。

Windowsですと、スレッド内でSetTimer()すると無限ループ中でもタイマ
イベントが発火するのですが、Macではどのようにしたらいいのでしょうか?


668 :デフォルトの名無しさん:2012/07/31(火) 14:41:28.39
>>665
>NSThreadで起動したスレッドの内部で、オブジェクトのbool型変数がFALSEに
>なるまでwhile()ループする処理を入れています。
出発点がそもそもおかしいと思うが。
普通はセマフォとかメッセージ待ちにするでしょ。

669 :デフォルトの名無しさん:2012/07/31(火) 14:50:52.21
行儀悪いけどこうやれば3秒後にループから抜けられるよ。

__block bool done = false;

dispatch_async(
 dispatch_get_global_queue(
  DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
  ^{ sleep(3); done = true; });

while (!done) {}


670 :デフォルトの名無しさん:2012/07/31(火) 15:06:34.03
>>668
同期したいんじゃなくて、一定時間だけ処理させたかったんです。

>>669
結局、それに近い処理で実装してみました。
ループ前にNSDateで現在時間を取って、ループの最後でtimeIntervalSinceDate
で差を取得し、指定時間が経過していたらbreakするように。行儀悪いですが、
ひとまずは目的は果たせています。

スレッド内でのループ処理をタイマで抜けるようにする手法はないんでしょう
かね。


732 :デフォルトの名無しさん:2012/08/08(水) 18:38:10.65
プログラムの基本的なことかもしれませんが質問させてください

現在、iPhoneのアプリを作成中です。
同じような処理をほぼ同時に(少し時間差をつけて)3つに分けて処理させてようと思っています
処理の過程で他のクラスで「3つの内のどの処理を行うか」という判断のフラグ処理で悩んでいます

スマートなプログラム書きたいんですがフラグの参照方法がこれぐらいしか思いつきません。
・グローバル変数に設定する
・引数で渡していく
isRecordingのように何かの状態を見て判断させる手もありますが、状態変化で判断する所もなさそうです

他のクラスの中でデータの削除->保存->参照というのをやっていくのでどうしても
「3つの内のどの処理を行うか」という判断が必要になります

なにかいい方法があれば教えてくださいm(__)m


737 :デフォルトの名無しさん:2012/08/08(水) 19:04:06.94
質問してキーワード貰ったら最低でもググれよ

738 :デフォルトの名無しさん:2012/08/08(水) 19:11:04.35
>>732
> 説明がわかりにくくてすいません。。。
謝るまえに、もっと分かり易く説明してくれ。
何をしようとしているのか、いまいちよく分からないぞ。

で、これってマルチスレッドな話なのか?
スレッド1: 保存処理 -> 参照 -> 削除処理
スレッド2:  保存処理 -> 参照 -> 削除処理
スレッド2:   保存処理 -> 参照 -> 削除処理
こんな感じ?

それで、話に出て来る「他のクラス」って、いったいなんなの?
それから、ここでいう「データ」って何?


739 :732:2012/08/08(水) 19:23:12.62
>>737
一応ググったんですが普通にフラッシュの光らせ方しか出てこなかったもんで・・・
ソースコードも見てみましたけど、フラグに使えるんでしょうか?

>>738
ご指摘の通りマルチスレッドを使った1->2->3という処理です
「他のクラス」はマルチスレッドをスタートさせるところ以外のクラスです
「データ」は画像データです



740 :デフォルトの名無しさん:2012/08/08(水) 19:34:55.82
>>739
じゃあ、処理を3つに分けることと、フラグとの関係は?

@implementation OtherClass

- (void)threadProcess:(NSImage*)image
{
[self save:image];
[self reference:image];
[self delete:image];
}

@end

これじゃ、ダメなの?


741 :732:2012/08/08(水) 19:40:47.99
>>740
まぁ、それが引数で値を渡すっていう形になりますよね。
その先で色々と処理をしてて、ずっとその引数を渡していくというのが
ちょっとややこしいもんで・・・。

755 :デフォルトの名無しさん:2012/08/09(木) 17:35:25.59
NSThreadはオワコン

757 :デフォルトの名無しさん:2012/08/09(木) 18:43:10.66
>>755,756
ありがとうございます。他にスレッドを使用する方法があったなんて!
NSInvocationOperationとNSOperationQueueで実装しました。
NSInvocationOperation initWithTargetからnil以外が返ってきたら、
NSOperationQueue addOperationすればスレッドの起動が失敗することは
ないと考えてよいですか?

因みに、オワコンの意味を調べたのは内緒です。


759 :デフォルトの名無しさん:2012/08/09(木) 20:56:50.87
>>757
> NSOperationQueue addOperationすればスレッドの起動が失敗することは
> ないと考えてよいですか?

NSOperationQueueは、スレッドと1対1で対応している訳ではないので、それは不明。

あと、あるスレッドでエラーが発生すると、スレッドが落ちることもある。
つまり、スレッドが起動成功しても直後にエラー落ちする可能性もある。

根本的に別の手段を考えた方がいいのでは?

760 :デフォルトの名無しさん:2012/08/09(木) 21:40:43.07
>>757
NSOperationQueue は同時に起動するスレッド(NSOperation)数はコア数に制限されているから、
スレッドの起動に失敗するということは全くといっていいほど考えられないのじゃないかなあ

761 :デフォルトの名無しさん:2012/08/09(木) 22:19:02.63
>>760
ん?
スレッド数に制限があることと、スレッドの起動に失敗しないこととの間に、いったいどんな関係が?

762 :デフォルトの名無しさん:2012/08/09(木) 22:21:17.62
>>761
スレッドの起動に失敗するのって逆にどういうの?リソースが足りないぐらいしか思いつかないんだけど

777 :デフォルトの名無しさん:2012/08/10(金) 10:00:28.27
754です。
スレッド起動に関する議論、参考になります。
スレッドが動き出せたのかどうかを知るのって、重要だとおもうんですよ。
議論を読んでいると、NSOperationQueueですら確実に実行できているとは
限らないと読めるんですが、皆さんがスレッド使うプログラムを作るとき
は、結局どう判定してるの?動くこと前提にしちゃうんでしょうか。

>>759
>根本的に別の手段を考えた方がいいのでは?

ということで、オワコンと言われているNSThreadに戻ってきました。
NSThread initWithTargetで、nil以外が受け取れたならばスレッドは起動
出来ると判断して、NSThread startを呼ぶようにしました。
こんな感じですが、どうでしょうか。

NSThread* th = nil;
th = [[NSThread alloc]initWithTarget:self selector:@selector(threadFunc) object:nil];
if(th)
[th start];
else
return false; // エラー



http://toro.2ch.net/test/read.cgi/tech/1330330906/l50/../人気ブログランキングへ

PC等Win32API質問箱 Build96

1 :柊 つかさ:2011/09/06(火) 13:16:22.33
スレ立てるまでもない、Win32APIについての質問はこちらへどうぞ。
基地外、低脳、おっさんが何か答えてくれるよ。
「知らないならレスしないで下さい。ウザイだけです。 」なんて言わないでねっ!

■過去スレ
Win32API質問箱 Build95
http://hibari.2ch.net/test/read.cgi/tech/1310882903/

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版( http://msdn.microsoft.com/en-us/library/ )の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

過去スレはwikiから探してください。

最後にQtも使ってね

10 :デフォルトの名無しさん:2011/09/07(水) 16:14:38.99
WinAPIでMDIのアプリ作るのって難しいですか?



11 :デフォルトの名無しさん:2011/09/07(水) 17:17:12.71
そんな事を言ってる奴にはむずかしいんじゃね?

12 :デフォルトの名無しさん:2011/09/07(水) 17:46:55.32
>>11
んなこと聞いてねえわ。ボケ。

14 :デフォルトの名無しさん:2011/09/07(水) 18:34:49.77
>>10
http://wisdom.sakura.ne.jp/system/winapi/win32/win139.html

34 :デフォルトの名無しさん:2011/09/11(日) 00:24:07.18
サブクラス化する時の関数CallWinodwProcの第一引数にオリジナルのウィンドウプロセスを渡すわけだけど
C++クラスに内包したい場合に自前のWindowProcはクラスメンバに出来ないからグローバルにするけど
グローバルのWiindowProcからCallWindowProcでオリジナルを呼び出そうとしたときに
クラスの持ってるWindowProcを呼び出したい
なぜならクラスは複数同時に使用される可能性があるからね
でもCallWindowProcがグローバルだからオリジナルのクラスが判別出来ないよね
なんか手段とかあるのかな?

48 :デフォルトの名無しさん:2011/09/12(月) 02:32:23.24
>>34
C++でクラス使うって発想なんだし静的メンバ関数も思い出してあげて

GetWindowLongPtrのGWLP_USERDATAでもSetWindowSubClassのdwRefDataでも
どうにかしてクラスオブジェクトのアドレス入れて渡してやれば静的メンバ関数として
作成したプロシージャとかサブクラスコールバックでクラスのポインタでキャストすれ
ばthisポインタは使えないけどメンバには普通にアクセスできる
そんなのが欲しかったんじゃないの?


131 :デフォルトの名無しさん:2011/09/14(水) 03:42:30.54
>>48
スタティックはプログラムを組む時の名前空間を共有するだけで動作はグローバルと一緒なんだよ
どうせグローバル空間に固定されるならグローバル関数で書いたほうがはっきりしていいんだよ

151 :デフォルトの名無しさん:2011/09/14(水) 23:39:35.37
どうにも誤解されてる節がありそうなんで最終補足
あとは試すなり考えるなりしてくれ

俺(48,137.139)が先ほどからクラスと書き続けてるのはC++のクラスの事
先にエディットボックスを数値入力にする例挙げたんでその流れで行くと入力値の最小・最大値とか
符号の許可とかはクラスのメンバ変数にしてサブクラス化する時に一緒に初期化してしまえば処理は
共通化可能でしょ?
で、クラスメンバに格納してしまえば数値入力を行う為のキー入力監視等を行うプロシージャもメンバ
関数化してしまえばいいじゃん、という話

ただし普通にメンバ関数で作っちゃうと関数がマッピングされるアドレスの決定に問題があるから
>131さんが説明されている原理(グローバル空間に固定)を利用する為にstatic指定する必要があるよ、
と言いたかったのよ

153 :デフォルトの名無しさん:2011/09/15(木) 00:13:53.81
既存の便利なライブラリがあっても仕事で書いてると著作権だの金銭問題だの、と
審査通るの待ってられない場合に自分で書いた方が早い場合もあるのさ
無論、使えるとなればありがたく使うけどね

とはいえ何でも自分で作っちゃう方なんで既存のライブラリも精査してないのも確か
紹介してもらったライブラリも見てみます 紹介ありがと??

157 :デフォルトの名無しさん:2011/09/15(木) 06:36:39.77
>>153
今時仕事でゼロからWin32APIで作る案件なんてあるのか?


てか>>151程度の目的なら構造体+関数でC言語的に書いても大して変わらない
クラス化のメリットを履き違えてる

180 :デフォルトの名無しさん:2011/09/15(木) 22:26:14.15
ただ単にWindowをリサイズしたい時にも、SetWindowPos を使うと思うんですが
サイズの変更”だけ” したい場合に一番最適な uFlags の値というのは、何を組み合わせた値なのでしょうか

知ってたら教えてくださいお願いします

http://msdn.microsoft.com/ja-jp/library/ms633545.aspx

181 :デフォルトの名無しさん:2011/09/15(木) 22:27:43.83
SWP_NOZORDER | SWP_NOMOVE

182 :デフォルトの名無しさん:2011/09/15(木) 22:28:20.99
>>180
わざわざMSDNの該当ページのリンク貼って何がしたいの?馬鹿なの?
翻訳しろってか?

184 :デフォルトの名無しさん:2011/09/15(木) 22:35:48.58
>>181
SWP_NOMOVEは困ります

>>182
http://msdn.microsoft.com/ja-jp/library/ms633545.aspx
http://msdn.microsoft.com/ja-jp/library/cc411206.aspx
↑DWORD値の無い日本語版

リサイズはしたいけれど、位置の移動やzオーダーは必要無い場合に適切な値というのは書いていないと思うので質問しました。
冗談抜きで、WINAPIにSetWindowSizeのようなものがあった場合に使われるであろう適切な値の組み合わせを教えて下さい

237 :デフォルトの名無しさん:2011/09/18(日) 12:32:25.39
当初はMS自身がネイティブAPIだと言っていたよなぁ。
あれもライターの妄想ということになっているのか。

272 :デフォルトの名無しさん:2011/09/19(月) 00:34:34.59
VC++6を今更ながら使ってるんだけど、わからん部分があるから教えてくれい。

DialogBox(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc1);

こんな風にダイアログを表示すると、DlgProc1というダイアログプロシージャが実行されるよね。

そのダイアログプロシージャに、呼び出し元で宣言されたローカル変数(のアドレス)を持っていって
ダイアログプロシージャ内でその変数を読み書きしたい。

DialogBox(g_hInst,MAKEINTRESOURCE(IDD_DIALOG1), hWnd, DlgProc1,&test); //testはint型

こんな風にDialogBox APIの引数に&testを勝手につけると
コンパイルは通るんだけど

warning C4002: マクロ 'DialogBoxA' に指定された実引数の数が多すぎます。
+パラメータリストが違うよ??ん

ってワーニングが出る。

ワーニングを消す方法、もしくはどうやってダイアログプロシージャに変数(のアドレス)を持って行けばいいか
教えて欲しい。(説明下手でゴメン)

283 :デフォルトの名無しさん:2011/09/19(月) 01:11:44.63
>>272みたいなド素人が何故VC6を持ってる&使ってるのか分からない

285 :デフォルトの名無しさん:2011/09/19(月) 01:27:53.91
VC6至上主義者だからに決まってるだろ
・msvcrt.dllにリンクできる最後のバージョン
・Windows95で使える最後のバージョン
・インストールする際に.Netが不要
・ディスク占有量が少ない
・IDEの動作が軽い (特にデバッガ)

293 :デフォルトの名無しさん:2011/09/19(月) 02:14:04.20
テストだけ実機でやりゃいいじゃん
実行環境と開発環境を揃えるメリットってあるの?

296 :デフォルトの名無しさん:2011/09/19(月) 05:55:50.52
>>285
それで最新のDirectX11を使ったゲーム作れるの?
作れなかったら何の意味もないだろ。

297 :デフォルトの名無しさん:2011/09/19(月) 06:02:21.35
>>293
実機つってもグラボのダイレクトXとかシェーダの対応状況によるし、最低ラインを満たす実機を用意するべきでは

例えば処理のスレッドが固定fpsだった場合、処理落ちが発生するとゲームとして破綻する

非固定fpsでも処理スピードによってはAIが満足のいくパフォーマンスを発揮できなかったりするし

327 :デフォルトの名無しさん:2011/09/19(月) 16:26:18.75
>>297
固定FPSで組むほうが悪い。
固定FPSなんてコントローラーからの入力処理くらいで良い。
ついでにそんなに高度なAIなんてお前らに組めないだろ。
それにゲームとしての面白さはAIの良し悪しよりも単純に難易度。
ヘボAIでも一撃で致命傷になるような攻撃力を持った敵なら十分緊張感が出る。

328 :デフォルトの名無しさん:2011/09/19(月) 16:51:43.41
AIは思考ルーチンそのものより
最短経路探索とか衝突判定とかそういう部分の処理がネックになって高速化するのが難しい
プレイヤーはFPS速度で動いてるわけで、それに合わせて思考させると
ミリ秒単位で最短経路を解決しないといけないわけだからな

352 :デフォルトの名無しさん:2011/09/19(月) 17:40:19.52
チートできないゲームなんてこの世に無いよ

358 :デフォルトの名無しさん:2011/09/19(月) 17:51:40.81
>>352
完全には防げなくてもサーバーでの処理を中心にすればかなり防げる。

360 :デフォルトの名無しさん:2011/09/19(月) 17:54:22.59
>>358
残念
プロトコル解析するか鯖をハクれば可能だ

504 :デフォルトの名無しさん:2011/09/22(木) 11:47:25.01
すみません。VC6の頃、keybd_eventという関数でスクリーンショットを取っていたのですが、
今、keybd_eventのページを見るとSendInput関数推奨になっています。↓
http://chokuto.ifdef.jp/urawaza/api/keybd_event.html

SendInputでVK_SNAPSHOTを使う方法(スクリーンショットをとる方法)を
ググッたんですが、中々でてきません。SendInputはどう使えばいいんでしょうか?

ちなみに、keybd_eventのときは↓このように書いていました。
keybd_event(VK_SNAPSHOT, 0, 0, 0);


509 :デフォルトの名無しさん:2011/09/22(木) 15:38:31.13
自殺しろ

511 :デフォルトの名無しさん:2011/09/22(木) 16:30:21.85
>>509は殺人教唆といって立派な犯罪行為です
>>509は犯罪者予備軍なので気をつけてましょう
>>509>>509での書き込みによって直ちに逮捕されることはありませんが、
>>509の家族は一歩間違えば身内から犯罪者を出すという爆弾を抱えたことになります
>>509の家族には同情します

558 :デフォルトの名無しさん:2011/09/23(金) 23:38:16.54
Qtってマウス操作でボタン貼り付けたり、貼り付けたボタンダブルクリックでボタン押下時の処理が自動生成されるようなエディタあるの

560 :デフォルトの名無しさん:2011/09/24(土) 06:42:50.09
>>558
ありますというかそっちがメインです

561 :デフォルトの名無しさん:2011/09/24(土) 07:23:41.65
>>560
具体名よろ

575 :デフォルトの名無しさん:2011/09/24(土) 20:06:15.11
ウィンドウ全体を非表示にしておいて、ウィンドウ表示領域にマウスが乗ればウィンドウを表示するようにしたいのですが、
ウィンドウ非表示だとマウスが乗ってもウィンドウメッセージが送られてきません。
何かよい方法はないでしょうか?

600 :デフォルトの名無しさん:2011/09/25(日) 23:37:50.63
ファイルのコピーツールを作ろうとしています。
そこで質問が 2つ。

第一に、ファイル名のワイルドカード指定の展開をしてくれる API ってあるでしょうか。
ワイルドカードを含んだパスを渡すと、マッチするファイル名かパスの一覧を返してくれるとグッドです。

つづく


644 :デフォルトの名無しさん:2011/09/29(木) 16:28:20.55
初めて質問させていただきます。

私は現在VC++でデスクトップマスコットのようなものを作っているのですが、バックグラウンドでキー入力を読み取れるようにする方法がわかりません。

例ですが、メモ帳などの他のアプリに文字を打ち込みながら、私が作成しているアプリにもキー入力に対応した動作を行わせたいです。

長文・拙い文章で申し訳ないですが、よろしくお願いいたします。

646 :デフォルトの名無しさん:2011/09/29(木) 17:24:43.84
>>644
メッセージフック。
詳細はうすらはげが答えてくれる↓

648 :デフォルトの名無しさん:2011/09/29(木) 17:56:59.63
フックにもローカルフックとグローバルフックがあるだろ、
>>644のやりたいことはグローバルフックでできる

俺はうすらハゲじゃないけどな
続きはうすらハゲが答えてくれる↓

664 :デフォルトの名無しさん:2011/09/30(金) 13:33:33.27
試してないから無責任な意見だがWM_CHARで処理してみるとかどうだろう?
WM_KEYDOWNだと結局TranslateMessageで自分で処理した後が続いてたりしない?


665 :デフォルトの名無しさん:2011/09/30(金) 14:37:05.42
>>664
うおおおおおおおおいけました!!!!!
でも理由が分からんorz

Translatemessageで処理すると、WM_CHARが発行されるのは知ってるんだけどなー
余裕があったら理由ももう少し詳しく教えて下さい
忙しいのであれば結構です
ありがとうございました!

666 :デフォルトの名無しさん:2011/09/30(金) 16:16:53.80
>>665
http://kozhouse.homeip.net/TIPS/enter/
とあるから
WM_KEYDOWN内でリピートチェックして
破棄するなり書き換えるなりすればいいんじゃないかな

668 :デフォルトの名無しさん:2011/09/30(金) 17:53:38.27
>>666
うーん。わかりそうでわからない。。
そもそも何故ビープ音が鳴るのかが良く分かってないんだが・・
何が原因で鳴るのかさえわかれば全部理解できそうなんだが・・
そろそろ迷惑ならスルーしてくだしあ

669 :デフォルトの名無しさん:2011/09/30(金) 17:57:46.10
うーーーん。分からない分からない。

DLLを作っているんだが、呼び出し元が__stdcall なのか、__cdeclなのかすら分からん。
デバック環境も無い。
そもそも、DLL呼びっぱなしなので、リターンアドレス参照しない( = バグが見えてこない)

引数なしなら、うまくいくって奴は、この辺も疑う必要があると思うんだが、わからん。

なあ、
いっそ、
全部WINAPIにしちゃえば良い話?

680 :デフォルトの名無しさん:2011/09/30(金) 21:54:44.95
typedef int (* pFun)();
pFun pFunc;

pFunc = (pFun)GetProcAddress(hMod, "gui");
これでもだめか?

681 :669:2011/09/30(金) 22:00:50.66
>>680
ありがと????????
いったわ。

これも論理的にはいける気がするけど、名前付けないと駄目なんだね。
((*pFunc)(int))GetProcAddress(hMod, "gui")

683 :デフォルトの名無しさん:2011/09/30(金) 22:12:31.34
> invalid conversion from 'int (*)()' to 'int (*)()'
こんなエラーメッセージ出すマヌケなコンパイラなんて存在しねーよ。カス。

706 :デフォルトの名無しさん:2011/10/01(土) 08:27:35.12
つか以前から不思議だったが何故ベクターでランタイム配らしてんだよ
自分でサービスパック出してるくせに頭足りてねえんじゃねえの
http://www.microsoft.com/downloads/ja-jp/details.aspx?FamilyID=7b9ba261-7a9c-43e7-9117-f673077ffb3c
最新版ダウンロードできるようにしておけばいいじゃねえか

715 :669:2011/10/01(土) 19:40:44.59
すまん、呼び出し規約について、

exeからDLLの呼び出しに付いて
extern "C" __cdecl での呼び出しには成功している。

質問1:
exeからの呼び出し関数名には、prefixがアンスコなしで呼び出せている。
それって正しい?

質問2:
DLL側の宣言を
extern "C" __stdcall  (もしくはWINAPI) で宣言すると、exeから呼び出せない。
これって正しい?

質問3:
DLL側で extern "C" __stdcall で宣言した関数の exe からの呼び出し名は、
dumpbinとかで調べないといけないもの?なの?

ご迷惑おかけしますがよろしくお願いします。

719 :デフォルトの名無しさん:2011/10/01(土) 21:17:08.56
>>715
> 質問1:
> exeからの呼び出し関数名には、prefixがアンスコなしで呼び出せている。
> それって正しい?
正しい

> 質問2:
C++から呼ぶにはextern "C"が必要

> 質問3:
ヘッダファイルを使えばいいよ
#ifdef __cplusplus
extern "C" {
#endif
//ここで宣言
#ifdef __cplusplus
}
#endif
(ガードは省略)

723 :669:2011/10/01(土) 22:00:51.21
>>719
ありがとう。

printf のように、__stdcall でC++のexeから呼び出せるってことは
extern "C" __stdcall で必ず呼び出せるはずって事だね。

#define EXPORT {
 #ifdef __cplusplus
  extern "C" {
 #endif
 #ifdef __cplusplus
 }
 #endif
}
EXPORT int Func();

こんな感じかな

727 :デフォルトの名無しさん:2011/10/01(土) 22:26:53.82
>>723
>#define EXPORT {
全然分かってないだろ。

732 :デフォルトの名無しさん:2011/10/01(土) 23:23:26.60
>>723
> printf のように、__stdcall でC++のexeから呼び出せるってことは
> extern "C" __stdcall で必ず呼び出せるはずって事だね。
printfは可変長引数を受け取るので__stdcallではない

> こんな感じかな
違う。
http://www.raspberryginger.com/jbailey/minix/html/zconf_8h-source.html
http://www.raspberryginger.com/jbailey/minix/html/zlib_8h-source.html
がシンプルなので眺めてみるといい

742 :デフォルトの名無しさん:2011/10/02(日) 05:47:27.44
>>732
ありがとう。

>>727
うん、全く分かって無い部類w
ちっとべんきょうさる


http://hibari.2ch.net/test/read.cgi/tech/1315282582/l50人気ブログランキングへ

PC等おまえらUMLのモデリングツール何使ってますか?2

1 :デフォルトの名無しさん:2006/05/13(土) 14:58:53
前スレ
http://pc8.2ch.net/test/read.cgi/tech/1046441663/

12 :デフォルトの名無しさん:2006/05/20(土) 13:16:30
俺はもうEA買っちゃったから、おんぶにだっこしかないなぁ。
EAと同等でより高機能&使いやすいのなんかがあったら逆に落ち込みますよ。

14 :デフォルトの名無しさん:2006/05/20(土) 23:34:03
>>12 EAで不満なところとかある?

28 :デフォルトの名無しさん:2006/05/27(土) 14:08:37
すまん、あせった。

UMLの"図"だけなら良いけど、内容記述で戸惑うな。
ユースケース図書いても、ユースケースのシナリオのリンクがないために
結局ExcelかWordにシナリオ書いている。
ユースケースシナリオからステートチャートやシーケンスにリンクする所は
多分にあると思うんだがなあ。

29 :デフォルトの名無しさん:2006/05/27(土) 14:13:48
>28
キミあせりすぎだ。ツールはなにつかってるの?

31 :デフォルトの名無しさん:2006/05/27(土) 17:00:34
EAの評価版使ってみたけど、ユースケースをクリップボードに張りつけると日本語が「?」に文字化けするんだが、ライセンス版でも同じ?
ソース生成せず、絵を描くだけだったらJudeの方がいいのかな。Judeはクリップボードにそのまま画像が記憶できたので。


36 :デフォルトの名無しさん:2006/05/28(日) 23:59:16
すいません
UMLの学習用に手頃かつフリーなツールってのは無いんでしょうか

検索しても商用のばかりで・・

37 :デフォルトの名無しさん:2006/05/29(月) 00:25:11
>>36
つ [えんぴつ・わらばん紙]

39 :デフォルトの名無しさん:2006/05/29(月) 00:30:42
JUDE Community - ユーザ登録必要。使い方の情報が比較的多い。
iioss - ちょっと古いがまぁ使える。情報が極端に少ない。
UMLmemo - この前DLしたがまだ使ってない

いろんな図が書けてフリーのやつは、おいらが見つけたのでこんなくらいかな。
まぁ>>37がいうように紙・エンピツや100円ショップのホワイトボードも捨てがたい

161 :デフォルトの名無しさん:2006/11/26(日) 13:59:03
「オブジェクト指向の考え方」って何か勉強しなくちゃならんようなことあるのかな。

既存の言語である程度経験を積んでれば、
「構造体が関数(操作)を持ってて、ポリモフィズムと継承があります」
でおしまいじゃないの?


163 :デフォルトの名無しさん:2006/11/26(日) 14:31:10
>>161
オレは教育係の上司からそう説明されて終わった。
でも使いどころやらどう使うと効果的なのかとか言うのは、まったく教えてもらえなかった。
上司がOOPを理解してないって事が後でわかって、
あんまり上司がクソだったから自分でその後勉強したけど。

164 :デフォルトの名無しさん:2006/11/26(日) 16:40:48
>>163
>でも使いどころやらどう使うと効果的なのかとか言うのは、まったく教えてもらえなかった。
それがわからないというのは、オブジェクト指向を知ってる云々よりも、
実務経験の量と質の問題だと思う。
それがしっかりしてれば、それだけのことを教えてもらえば、
「従来やってきたことがやりやすくなった」というだけで基本的なところは終わる。
「使いどころやらどう使うと効果的なのか」という疑問がでてくるのは、
従来言語の経験があんまりないか、情報のカプセル化やコードの再利用といったことを、
あんまり意識せずに書いてた、というだけのことだと思う。

>上司がOOPを理解してないって事が後でわかって、
それだけのことが言えてOOPを理解してないってのは変な人だな。
自分のまわりには、プログラミングの基礎がまったくできてないのに、
「「オブジェクト指向の考え方」を身に着けなければだめだ」
となにかというと念仏のように言う奴の方が多いけど。



169 :デフォルトの名無しさん:2006/11/26(日) 22:08:36
Rose,EAとかってユースケースからダイアグラムとかへ関連あるものにトレースできるんでしょうか?
またできるとしたら使い勝手はどうでしょう?

171 :デフォルトの名無しさん:2006/11/26(日) 22:43:45
>>169
最近Rose は使ってないので、EAで話すと。

<<trace>>依存の話なら、ユースケース(というか要素)とダイアグラムの間に引くことはできない。
ツールの機能云々ではなく、UMLの仕様上。

しかし、要素からダイアグラムは呼び出せるので、一つの方法としては、
関連のあるダイアグラムにそのユースケースを入れておけば、
ユースケースから呼び出すことができる。

また、あるユースケースと関係のあるダイアグラムがすぐわかるようにしたいということであれば、
オブジェクトツリー上で、ユースケースの下にダイアグラムがおけるので、
ユースケースに直接関係するダイアグラムはそこにまとめることができる。

あと、分析・設計・実装、というような形でパッケージなりプロジェクトを分ける場合、
ユースケースは分析工程にあるので、他の工程にはユースケースと同じ名前のパッケージ
(ないしは、「<ユースケース名>の実現」といった名前のパッケージ、またはコラボレーション)を作り、
そこに関連するダイアグラムを入れるという方法もある。

172 :デフォルトの名無しさん:2006/11/26(日) 23:28:51
>>171
んーしたいことは関連のあるものを横断的にみたいって事なんですよ。
たとえば要求が少し変更になったとしますよね?
そのときに関連するユースケースが少し変わって、その結果関連するロバストネス図やまたそれに関連するクラスが影響を受けるじゃないですか。
そういったものを追っかける手段がRoseやEAにあるのかと言うことを聞きたかったんです。
言われたもので管理はできそうだけど、なんか無理にフォルダ構成とかをあわせてつじつまあわせているような感じを受けなくもないです・・・(´・ω・`)

173 :デフォルトの名無しさん:2006/11/26(日) 23:44:50
>>172
>言われたもので管理はできそうだけど、なんか無理にフォルダ構成とかをあわせてつじつまあわせているような感じを受けなくもないです・・・(´・ω・`)
具体的にどういうことができれば満足なの?

179 :デフォルトの名無しさん:2006/12/05(火) 16:43:19
EAの購入を考えているのですが、書籍の「初めてのEnterprise Architect」も購入した方が
良いのか迷ってます。
この書籍はチュートリアルをもとに作成されたものだそうですが、チュートリアルは読みやすいですか?
紙媒体の方がヘルプファイルみたいなのであれば、紙媒体を買ってしまおうかと思っているのですが・・・

180 :デフォルトの名無しさん:2006/12/05(火) 20:26:06
>>179

内容はほとんど同じ。漏れは電車などで読みたかったのと、応援的な
意味を込めて購入。チュートリアルの必要な部分を印刷すればよいかと


184 :デフォルトの名無しさん:2006/12/31(日) 17:34:54
UMLってLanguageらしいのに
このスレに一切言語のソースコードが表示されていないんだけど…

UMLって図なの?言語なの?

191 :デフォルトの名無しさん:2007/01/10(水) 09:20:56
>>184
ガントチャートチャートやフローチャートといった
言葉で表されるような、チャート図の一種。
つまり、図表で表現されるような抽象物を、
直観的に理解出来るように改良したもの。

言い換えると、チャート図の仕様をTPOに合わせて
いくつか用意したモノがUML。


193 :U ◆CZtFsGiu0c :2007/01/10(水) 14:35:42
>>191
>>184は多分「図なのになんで言語なの?」ってことが言いたいんだと思う。

確かに自然言語やそれに似せた人工言語(プログラミング言語とか)から
見ると異質だけど、広義の「言語」は、「体系化されたコミュニケーション
の記号」と考えられるから図も言語と言っても問題ないよ。

言語としては異質なものだと「パターン言語」というのもあるね。あっちは
もっと違和感あるけどね。

227 :デフォルトの名無しさん:2007/03/20(火) 20:32:07
JUDEの平鍋氏の部ログ読んで思ったのだが、
そこまでして売りたいか、と。

客に媚びているようで、情けない。


263 :デフォルトの名無しさん:2007/07/26(木) 20:51:24
こんなソフトが「日本トップレベル」のシェアを誇るそうだ

ttp://pw.tech-arts.co.jp/pw/training/index.html

Judeの18万と並ぶ本数が売れているらしい。

275 :デフォルトの名無しさん:2007/10/17(水) 11:44:30
ArgoUMLって誰か使ってないの?
BSDラインセンスでインスコの敷居が低い(個人情報とかイラネーんで)入れてみたんだけど、
UML初めてなんで良いのか悪いのか判断つかねー。

281 :デフォルトの名無しさん:2007/11/20(火) 11:13:16
UMLの勉強を始めた学生です。
金がないんで無料のソフトを試そうと思ってるんですが、
無料のものだと対応していない図が結構あったりします。
例えばアクティビティ図が描けないソフトとかって、
別に実用上は問題ないんでしょうか。
ソフトの開発者が優先度低いと思って実装してないわけですよね、きっと。
(例えばAmaterasUMLだと、最近になってアクティビティ図が実装された)

ユースケース図が描けないソフトってのはさすがに見当たりませんが、
アクティビティ図などが描けないようなのを散見します。

webや書籍でUML関連の記事を読むと、
それぞれの図についての説明は一通りあるんですが、
「実際現場ではこの図しか使わないよ」みたいなことが書いてません。

使い込むならこの図は描ける機能は外せない、
というような基準はあるんでしょうか。
Linux/Mac/Winの混在環境なので、Eclipseのpluginを使う予定です。

285 :デフォルトの名無しさん:2007/11/23(金) 22:38:40
Judeはどう?大抵の図はサポートしてる。
Javaでできてるし、LinuxやMacでも動くんじゃない?
公式にはWindowsのみサポート、とあるけど、他のプラットフォームでもある程度動くらしいよ。

289 :デフォルトの名無しさん:2007/11/25(日) 15:53:28
>>281
NECのはバージョンうpして、大体の図は描けるようになってるよ
俺は使ってる

299 :デフォルトの名無しさん:2008/01/09(水) 01:35:38
JUDEって激重なんだよな

302 :デフォルトの名無しさん:2008/01/09(水) 20:02:03
>>299,300

激、ではないが重い。他のアプリを一度前に出して、
それからJUDEを前に出すと、図に数個の要素があるような
簡単な図でも、10秒くらい待たされる。



314 :774:2008/02/08(金) 15:37:13
おまいら、Jude commで2つのファイルのマージはどうやってる?
ファイル間のコピーペーストできねーみたいだ。実際やりたいのは
ステートチャートやクラス図をコピー&ペーストしたい。
過去ログも読んだけどわからなったよ。マジレス希望。

323 :デフォルトの名無しさん:2008/02/17(日) 11:27:25
EAとJUDEの話題が多いが
この2つじゃ全く比較にならないと思ってるのは俺だけじゃないはず

325 :デフォルトの名無しさん:2008/02/17(日) 16:34:09
>>323

その心は?

・EAとJUDEはどちらかが圧倒的に優れていて比較するまでもない
・EAとJUDEの2つだけ比較してもしょうがない

384 :オガちゃん萌え ◆tyvkWCNtzY :2008/03/19(水) 21:29:41
モデリングツールは仕事でしか使ってないが、Rational Rose だよ。
もうIBM RationalはRoseのメンテするつもりないんだな、2003??Ver.7に至るまで、終了時に BAD MEM POINTER エラーが必ず出るw
Enterprise Architectは興味があるな。安いし
Rationalのツールなど、個人じゃ買えない

385 :デフォルトの名無しさん:2008/03/20(木) 14:25:43
>>384
Enterprise Architect 作りが甘いよ
UML上で関数を上の方に定義して、ソース作ってもソースでは下の方になってるし、
関数を2重定義とかできるし、(パラメータも完全に同じ関数)
コメント欄も勝手にソースに貼られて /* */ で一気にコメントアウトできなかったりと

いろいろと不満ありまくりんこ

390 :デフォルトの名無しさん:2008/03/23(日) 14:35:05
>>389 評価版で試せばいいことじゃん。

397 :デフォルトの名無しさん:2008/04/29(火) 12:51:25
て言うか外資系のツールって途中サポート切ってると、再契約時の
金額が跳ね上がる奴がある (代表: Oracle) けど、EA はそんなこと
ないのか?

398 :デフォルトの名無しさん:2008/04/29(火) 14:02:20
>>397

EAは一度切っても値段変わりません。
外資系、国内に限らず珍しい制度。



399 :デフォルトの名無しさん:2008/04/29(火) 15:06:21
>>398
なるほど、それは珍しい。

国内はそれなりに融通きく所が多いけど、外資はほんとにきっちりしてるからなぁ。

情報サンクス。

457 :デフォルトの名無しさん:2009/05/03(日) 18:55:22
すいません。質問させてください。(ほかに該当スレがなさそうなので)

JUDEでシーケンス図にアクターを追加するにはどうすればいいですか?
JUDEコミュニティ5.4を利用しています。
WEBや参考資料で調べましたが、この件について書いてあるものは
見つかりませんでした。

どなたかご存知でしたら、教えてください。
お願いいたします。

458 :457:2009/05/03(日) 19:00:02
申し訳ございません。自己解決しました。

ユースケース図でアクターをつくって、構造ツリーからシーケンス図に
ドラッグアンドドロップすれば作れますね。
この方法で作るのが一般的なのでしょうか。

459 :デフォルトの名無しさん:2009/05/03(日) 22:00:05
>>458
Yes.
UMLの設計はユースケース駆動なので、UMLの手番的にその方法で問題ない。

それ以前に、ツールとしてアクター作れるのがユースケース図しかないしね。

461 :デフォルトの名無しさん:2009/05/05(火) 00:29:28
>>457
>>459
ライフラインを追加→ベースクラスを新規作成→ステレオタイプにactorを追加でできるよ。
某人間にするには、選択して右クリック→アイコン表記。

471 :デフォルトの名無しさん:2009/05/13(水) 20:53:03
2、3年くらい前までEnerprise Architect7.5(バージョン数はうろ覚え)を使っていたものです。
ちょうどライセンスも切れているし、UMLモデリングツールの最新版を手に入れようと思うの
ですが、いまならJUDE ProとEAだとどちらがおすすめですか?

用途は、PHP5(たまにJava)+MySQLでのWEBアプリケーションの設計開発です。

492 :デフォルトの名無しさん:2009/05/18(月) 23:27:24
Judeで読めるよ

495 :デフォルトの名無しさん:2009/05/19(火) 07:22:05
JUDEでいいじゃん、って考え方じゃだめ?

496 :デフォルトの名無しさん:2009/05/19(火) 12:06:02
>>492
Professional 版じゃないと読み込めないですよね??

>>495
EAで作成したクラス図とシーケンス図があってワードに貼り付けて
納品したら、編集できる形に出来ませんか?とお達しがあり、上記の質問になりました。

やっぱ地道に書き起こして行くしかないですよねぇ。。

498 :デフォルトの名無しさん:2009/05/19(火) 20:05:41
>>496

JUDEで読み込んだととしても、編集できないのでは?

ちなみに、EAの画像を貼り付けた後に、グループ化解除コマンドで分解できるのはご存じ?

499 :デフォルトの名無しさん:2009/05/19(火) 22:25:36
>>498
グループ化解除は知りませんでした。
今やってみたところ、編集出来なくはないですね。。。

駄目もとで納品先に聞いてみます。
感謝です!!

538 :デフォルトの名無しさん:2010/01/14(木) 12:24:03
ところでMicrosoftはそういうツールを出していないのだろうか。
ドトネトけいとかVisioベースでとか。

731 :デフォルトの名無しさん:2011/04/29(金) 19:48:33.50
多重度について質問です。

【シーケンス図】
| <<control>> |    | <<entity>>|
| 商品在庫管理|    | 商品種類 |
| |
| hoge() |
|-------------------->|
| |

【クラス図】
| <<control>> |----------------| <<entity>>|
| 商品在庫管理|0..1     1| 商品種類 |

上記の図の場合、商品在庫管理から見た場合の多重度の意味は理解できます。
(hoge()は1つの商品種類に対して実行される)

しかし、商品種類から見た場合の多重度がよく分かりません。
1つの商品在庫管理からhoge()される場合もあるけど、無いかもよ???ってことですか?


760 :デフォルトの名無しさん:2011/07/02(土) 23:50:20.65
分業制のゲーム業界


http://hibari.2ch.net/test/read.cgi/tech/1147499933/l50人気ブログランキングへ

学ばないブログ
忍者AdMax
記事検索
最新コメント
QRコード
QRコード
  • ライブドアブログ