WindowsCEプログラミングを話し合うスレッドです。
アプリケーション
ドライバ
プラットフォームビルダからのシステム構築まで幅広く語り合いましょう。
前スレ
■WindowsCEプログラミング(EVC PB3含む)Ver2.1■
http://pc11.2ch.net/test/read.cgi/tech/1102860886/
探検
■WindowsCEプログラミング(EVC PB3含む)Ver2.2■
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2007/03/06(火) 12:16:14159デフォルトの名無しさん
2007/07/06(金) 21:05:53160デフォルトの名無しさん
2007/07/09(月) 15:27:27 hosyu>>1-1000
161デフォルトの名無しさん
2007/07/09(月) 20:48:38 >>1-161
保守
保守
162デフォルトの名無しさん
2007/07/14(土) 17:06:08 >>161
HOSYU
HOSYU
163デフォルトの名無しさん
2007/07/21(土) 18:17:07 ・・・
164デフォルトの名無しさん
2007/07/22(日) 10:33:01 >>164
ID表示
ID表示
165デフォルトの名無しさん
2007/07/24(火) 02:16:43 eMbedded Visual Basic 3.0からWinSock APIのsetsockoptを
呼び出したいんですが、どのようにDeclare宣言すればいいのか
分からず悩んでいます。
とりあえず、下記のように宣言して呼び出してみたんですが、戻り値が-1で
異常終了してしまいます。 WinSockのエラーコードは10014が返ってきます。
エラーコード10014は、WSAEFAULT で、無効なバッファアドレスが指定された
のが原因のようです。
Const SOL_SOCKET = 65535
Const TCP_NODELAY = &H1&
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Long, ByVal optlen As Long) As Long
Dim lSockOpt As Long
Dim lOptLen As Long
Dim lResult As Long
Dim lLastErr As Long
lSockOpt = 0
lResult = setsockopt(WinSock1.SocketHandle, SOL_SOCKET, TCP_NODELAY, lSockOpt, LenB(lSockOpt))
lLastErr = GetLastError
eMbedded Visual Basic 3.0からsetsockopt APIを正常呼び出しするには、
どのようにDeclare宣言すればよいかアドバイスをお願いします。
上記コードで間違いがあればご指摘下さい。
呼び出したいんですが、どのようにDeclare宣言すればいいのか
分からず悩んでいます。
とりあえず、下記のように宣言して呼び出してみたんですが、戻り値が-1で
異常終了してしまいます。 WinSockのエラーコードは10014が返ってきます。
エラーコード10014は、WSAEFAULT で、無効なバッファアドレスが指定された
のが原因のようです。
Const SOL_SOCKET = 65535
Const TCP_NODELAY = &H1&
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Long, ByVal optlen As Long) As Long
Dim lSockOpt As Long
Dim lOptLen As Long
Dim lResult As Long
Dim lLastErr As Long
lSockOpt = 0
lResult = setsockopt(WinSock1.SocketHandle, SOL_SOCKET, TCP_NODELAY, lSockOpt, LenB(lSockOpt))
lLastErr = GetLastError
eMbedded Visual Basic 3.0からsetsockopt APIを正常呼び出しするには、
どのようにDeclare宣言すればよいかアドバイスをお願いします。
上記コードで間違いがあればご指摘下さい。
166165
2007/07/24(火) 02:25:04 165です。
ググるとVB6のsetsockoptのDeclare宣言を見つけることができますが、
第4引数のoptvalがAny型で宣言されており、eVB3では使えない型で
あるためLong型に置き換えて宣言したのですが、これがマズイのでしょうか?
ググるとVB6のsetsockoptのDeclare宣言を見つけることができますが、
第4引数のoptvalがAny型で宣言されており、eVB3では使えない型で
あるためLong型に置き換えて宣言したのですが、これがマズイのでしょうか?
167デフォルトの名無しさん
2007/07/24(火) 08:57:07 マズい。Any型はバリアントとして定義しろ。
168165
2007/07/24(火) 09:52:02 >>167
レスありがとうございます。
早速Variant型で宣言してみましたが、結果は同じくエラーコードは10014が返ってきました・・・
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Variant, ByVal optlen As Long) As Long
レスありがとうございます。
早速Variant型で宣言してみましたが、結果は同じくエラーコードは10014が返ってきました・・・
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Variant, ByVal optlen As Long) As Long
169デフォルトの名無しさん
2007/07/24(火) 15:09:10 宣言はそれであっていても呼び出し方が間違っているんじゃないのか?
周辺のソケットハンドル取得するところから全部晒してみろ。
周辺のソケットハンドル取得するところから全部晒してみろ。
170165
2007/07/24(火) 16:34:41 >>169
>宣言はそれであっていても呼び出し方が間違っているんじゃないのか?
その通りでした。
結論から言うと、第2引数にIPPROTO_TCPを渡していなかったのが一番の原因で、
あと第5引数をLenBでサイズ取得していたのを直値指定することでsetsockoptが
正常終了するようになりました。
lSock = WinSock1.SocketHandle
lSockOpt = 0
lResult = setsockopt(lSock , IPPROTO_TCP, TCP_NODELAY, lSockOpt, 4)
しかしまだ根本的な問題がクリアできていません。
そもそも何故 setsockopt で TCP_NODELAY を設定しようとしたかと言うと、
eVB3でWinSockコントロールを使って10バイトのデータをサーバに送信しようと
した場合、1パケットで10バイト送信してほしいのに、何故か2分割されて初めに
1バイトだけ送信されて、続いて9バイト送信されるという現象が起きたためでした。
単純に、WinSock1.SendData ("1234567890") とすると、
サーバには、
1
234567890
という感じで2分割されて送信されてしまいます。
この現象はVB6では発生しないので、eVB3特有のものかもしれません。
解決方法がお分かりの方、アドバイスを宜しくお願いいたします。
>宣言はそれであっていても呼び出し方が間違っているんじゃないのか?
その通りでした。
結論から言うと、第2引数にIPPROTO_TCPを渡していなかったのが一番の原因で、
あと第5引数をLenBでサイズ取得していたのを直値指定することでsetsockoptが
正常終了するようになりました。
lSock = WinSock1.SocketHandle
lSockOpt = 0
lResult = setsockopt(lSock , IPPROTO_TCP, TCP_NODELAY, lSockOpt, 4)
しかしまだ根本的な問題がクリアできていません。
そもそも何故 setsockopt で TCP_NODELAY を設定しようとしたかと言うと、
eVB3でWinSockコントロールを使って10バイトのデータをサーバに送信しようと
した場合、1パケットで10バイト送信してほしいのに、何故か2分割されて初めに
1バイトだけ送信されて、続いて9バイト送信されるという現象が起きたためでした。
単純に、WinSock1.SendData ("1234567890") とすると、
サーバには、
1
234567890
という感じで2分割されて送信されてしまいます。
この現象はVB6では発生しないので、eVB3特有のものかもしれません。
解決方法がお分かりの方、アドバイスを宜しくお願いいたします。
171165
2007/07/24(火) 16:39:03 簡単な現象再現用のコードを張っておきます。(投稿用にエラーチェック類は省きました)
フォームにコマンドボタン(cmdConnect、cmdDisconnect、cmdSend)3つと、WinSock
コントロール(WinSock1)を1つ張っています。
Const IPPROTO_TCP = 6
Const TCP_NODELAY = &H1&
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Variant, ByVal optlen As Long) As Long
Declare Function GetLastError Lib "coredll.dll" () As Long
Private Sub cmdConnect_Click()
WinSock1.Protocol = sckTCPProtocol
WinSock1.RemotePort = 7777
WinSock1.RemoteHost = "192.168.0.100"
WinSock1.Connect
End Sub
Private Sub cmdDisconnect_Click()
WinSock1.Close
End Sub
Private Sub cmdSend_Click()
Dim lSock As Long
Dim lSockOpt As Long
Dim lResult As Long
Dim lLastErr As Long
lSock = WinSock1.SocketHandle
lSockOpt = 0
lResult = setsockopt(lSock, IPPROTO_TCP, TCP_NODELAY, lSockOpt, 4)
lLastErr = GetLastError
WinSock1.SendData ("1234567890")
End Sub
フォームにコマンドボタン(cmdConnect、cmdDisconnect、cmdSend)3つと、WinSock
コントロール(WinSock1)を1つ張っています。
Const IPPROTO_TCP = 6
Const TCP_NODELAY = &H1&
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, optval As Variant, ByVal optlen As Long) As Long
Declare Function GetLastError Lib "coredll.dll" () As Long
Private Sub cmdConnect_Click()
WinSock1.Protocol = sckTCPProtocol
WinSock1.RemotePort = 7777
WinSock1.RemoteHost = "192.168.0.100"
WinSock1.Connect
End Sub
Private Sub cmdDisconnect_Click()
WinSock1.Close
End Sub
Private Sub cmdSend_Click()
Dim lSock As Long
Dim lSockOpt As Long
Dim lResult As Long
Dim lLastErr As Long
lSock = WinSock1.SocketHandle
lSockOpt = 0
lResult = setsockopt(lSock, IPPROTO_TCP, TCP_NODELAY, lSockOpt, 4)
lLastErr = GetLastError
WinSock1.SendData ("1234567890")
End Sub
172デフォルトの名無しさん
2007/07/24(火) 16:54:33 パケットが分割されてようがデータとしてはちゃんと届いてるんでしょ
それが問題になるプログラムが悪い
それが問題になるプログラムが悪い
173165
2007/07/24(火) 17:03:47 おっしゃる通り、データサイズが小さいからって1パケットでデータ受信することを
前提にしたサーバアプリなんておかしいのですが、サーバアプリは自分で作った
ものではなく、変更できないのです・・・
そこで送り側が苦労しているという始末です orz
前提にしたサーバアプリなんておかしいのですが、サーバアプリは自分で作った
ものではなく、変更できないのです・・・
そこで送り側が苦労しているという始末です orz
174172
2007/07/24(火) 17:19:36 それはすまんかった。
手元に環境無くて試せないけど、一つだけ。
TCP_NODELAYを有効にしたいのなら、値は1にしなきゃ駄目なのでは?
ttp://support.microsoft.com/kb/237688/ja
' Change two options valid for TCP Sockets.
lResult = setsockopt(Winsock1.SocketHandle, IPPROTO_TCP, TCP_NODELAY, 1, 4)
If (lResult = SOCKET_ERROR) Then
MsgBox "Error setting TCP_NODELAY option: " & CStr(Err.LastDllError)
End If
手元に環境無くて試せないけど、一つだけ。
TCP_NODELAYを有効にしたいのなら、値は1にしなきゃ駄目なのでは?
ttp://support.microsoft.com/kb/237688/ja
' Change two options valid for TCP Sockets.
lResult = setsockopt(Winsock1.SocketHandle, IPPROTO_TCP, TCP_NODELAY, 1, 4)
If (lResult = SOCKET_ERROR) Then
MsgBox "Error setting TCP_NODELAY option: " & CStr(Err.LastDllError)
End If
175165
2007/07/24(火) 17:42:58 >>174
ご指摘のとおり値を1にしてみましたが、分割送信されてしまいました。。。
値が0でも1でも結果が同じっていうのは、他に何か原因があるのでしょうか?
また教えていただいたMSのページを見ると、第4引数がByRef定義されているのに
呼び出し側は値渡ししているのが気になったのでサンプルと同じく値渡しで0と1の
両方を試してみましたが残念ながら同じ結果となりました・・・orz
ご指摘のとおり値を1にしてみましたが、分割送信されてしまいました。。。
値が0でも1でも結果が同じっていうのは、他に何か原因があるのでしょうか?
また教えていただいたMSのページを見ると、第4引数がByRef定義されているのに
呼び出し側は値渡ししているのが気になったのでサンプルと同じく値渡しで0と1の
両方を試してみましたが残念ながら同じ結果となりました・・・orz
176デフォルトの名無しさん
2007/07/24(火) 18:08:50 そりゃサーバ側をなんとかするしかないんじゃね?
177172
2007/07/24(火) 18:16:49 うーん。やっぱりoptvalがちゃんと渡ってないんじゃ。
optvalの宣言をLongにしてこうしたらどうだろ。
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, ByVal optval As Long, ByVal optlen As Long) As Long
〜
lSockOpt = 1
lResult = setsockopt(lSock, IPPROTO_TCP, TCP_NODELAY, VarPtr(lSockOpt), 4)
Cで書ければいんだけど。これで駄目なら┐(´ー`)┌
optvalの宣言をLongにしてこうしたらどうだろ。
Declare Function setsockopt Lib "winsock.dll" (ByVal s As Long, ByVal level As Long, ByVal optname As Long, ByVal optval As Long, ByVal optlen As Long) As Long
〜
lSockOpt = 1
lResult = setsockopt(lSock, IPPROTO_TCP, TCP_NODELAY, VarPtr(lSockOpt), 4)
Cで書ければいんだけど。これで駄目なら┐(´ー`)┌
178165
2007/07/24(火) 19:24:33179デフォルトの名無しさん
2007/07/24(火) 21:11:25 無理にCE側をなんとかするんじゃなくってサーバアプリにアクセスするサーバアプリを作ればいいんだよ
180デフォルトの名無しさん
2007/07/24(火) 21:28:52 というか、getsockoptでちゃんと現在値をとって確認しないと・・・
>179
なるほど、プロキシか。その手はあるな。
>179
なるほど、プロキシか。その手はあるな。
183デフォルトの名無しさん
2007/07/24(火) 21:41:17 一気にwriteするときは、nagle関係ないはずだけど、
1byteだけ先行するってのはEVBのランタイムは
どうなってるんだろうかね。String->BYTE変換で
ちまちまwrite発行してるのかね。
1byteだけ先行するってのはEVBのランタイムは
どうなってるんだろうかね。String->BYTE変換で
ちまちまwrite発行してるのかね。
185デフォルトの名無しさん
2007/07/25(水) 03:30:36 >>182
それって、optvalのところはVariantで宣言してるんでしょ?
ちゃんと取れてるかは怪しいような…
いや、nagle関係無い可能性の方が高いか
1. VBやめてCで作る
2. setsockoptの部分だけCで書く
3. sendの部分だけCで書く
サーバ側の処理がどうなってるか知らんけど、データを
" 1234567890"と細工してsendしたら分割された二つ目の
パケットだけ処理してくれたりは…しないよな
それって、optvalのところはVariantで宣言してるんでしょ?
ちゃんと取れてるかは怪しいような…
いや、nagle関係無い可能性の方が高いか
1. VBやめてCで作る
2. setsockoptの部分だけCで書く
3. sendの部分だけCで書く
サーバ側の処理がどうなってるか知らんけど、データを
" 1234567890"と細工してsendしたら分割された二つ目の
パケットだけ処理してくれたりは…しないよな
186165
2007/07/25(水) 15:20:08 >>182
MSへの問い合わせもeVB3のサポートライフサイクルが終了しているので
製品不具合と分かった場合でもインシデントを消費するけどいいかとの
調査前提条件の連絡があったので、キャンセルしました。
もうeVBと格闘するのも疲れたので、eVCで作り直すことにしました。 orz
(他にもConnect時に7秒程度ブロッキングされたりするのが問題なので・・・)
ということで、いろいろアドバイスいただいた方々、本当にありがとうございました。
MSへの問い合わせもeVB3のサポートライフサイクルが終了しているので
製品不具合と分かった場合でもインシデントを消費するけどいいかとの
調査前提条件の連絡があったので、キャンセルしました。
もうeVBと格闘するのも疲れたので、eVCで作り直すことにしました。 orz
(他にもConnect時に7秒程度ブロッキングされたりするのが問題なので・・・)
ということで、いろいろアドバイスいただいた方々、本当にありがとうございました。
187デフォルトの名無しさん
2007/07/30(月) 00:55:42 全然詳しくないので質問させてください。
いつも仕事中にWebばかり見てる派遣クンが
「CEがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
彼のCEプログラムが動かないのを調べるのは誰の仕事なのでしょうか?
いつも仕事中にWebばかり見てる派遣クンが
「CEがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」
と言っています。
彼のCEプログラムが動かないのを調べるのは誰の仕事なのでしょうか?
188デフォルトの名無しさん
2007/07/30(月) 01:15:18189デフォルトの名無しさん
2007/07/30(月) 01:16:33 仕事の指示出している人間に聞けよ。
指示または契約がそうなっていないんなら、それは派遣クンの
仕事じゃないんだろ
指示または契約がそうなっていないんなら、それは派遣クンの
仕事じゃないんだろ
190デフォルトの名無しさん
2007/07/30(月) 01:20:25 少なくとも派遣クンのバグでないことを証明するのは派遣クンの仕事だろ
それを別の人間がやるなら派遣クンの存在自体に意味がないだろ
それを別の人間がやるなら派遣クンの存在自体に意味がないだろ
191デフォルトの名無しさん
2007/07/30(月) 01:25:34 こんなのに釣られるなよ
いつもの派遣叩きの変化形じゃないか
いつもの派遣叩きの変化形じゃないか
192デフォルトの名無しさん
2007/07/30(月) 01:30:46 夏厨ウザイ
VBスレでやれ
組み込みに派遣使うよーな厨会社なんていねーよ
VBスレでやれ
組み込みに派遣使うよーな厨会社なんていねーよ
193デフォルトの名無しさん
2007/07/30(月) 01:56:52 無線LANの電界強度と電池の残量を取得するDLLを作る必要がある訳だが。
未だに技術者を見つけて来てくれない('A`
未だに技術者を見つけて来てくれない('A`
194デフォルトの名無しさん
2007/07/30(月) 02:30:02 まるち
195デフォルトの名無しさん
2007/07/30(月) 08:59:35 せりお
196デフォルトの名無しさん
2007/07/30(月) 09:38:00 ぴーす
197デフォルトの名無しさん
2007/08/01(水) 22:42:06 wininet使ってる市販アプリを導入してるんですが、timeoutまでの時間が
長すぎるのでどうにかしたいと調査中です。
製造元に確認してもwininet(OS)の仕様に依存するので一切答えられない
と言われて八方塞です。
レジストリ設定とかでtimeoutまでの時間を任意に設定する事は出来ないん
でしょうか?ちなみにWM5.0です。
長すぎるのでどうにかしたいと調査中です。
製造元に確認してもwininet(OS)の仕様に依存するので一切答えられない
と言われて八方塞です。
レジストリ設定とかでtimeoutまでの時間を任意に設定する事は出来ないん
でしょうか?ちなみにWM5.0です。
198デフォルトの名無しさん
2007/08/01(水) 23:24:14 何のタイムアウトだ?
199デフォルトの名無しさん
2007/08/02(木) 00:45:56 >>197
WinINet では InternetSetOption() を使って接続/受信/送信タイムアウトを個別に指定できるはず。
よって OS(or WinINet)の仕様ではなく、アプリケーションの実装の問題。
このオプションは接続毎に指定するもので、レジストリ等、外部からの設定も無理そう。
しかし、念のためにぐぐってみたら、こんな記事もあったりして、一概に実装の問題とも
言いきれない可能性もあるが。
ttp://support.microsoft.com/kb/917549/en-us
ttp://support.microsoft.com/kb/q176420/
WinINet では InternetSetOption() を使って接続/受信/送信タイムアウトを個別に指定できるはず。
よって OS(or WinINet)の仕様ではなく、アプリケーションの実装の問題。
このオプションは接続毎に指定するもので、レジストリ等、外部からの設定も無理そう。
しかし、念のためにぐぐってみたら、こんな記事もあったりして、一概に実装の問題とも
言いきれない可能性もあるが。
ttp://support.microsoft.com/kb/917549/en-us
ttp://support.microsoft.com/kb/q176420/
200デフォルトの名無しさん
2007/08/04(土) 20:49:42 ワーカースレッドで SetTimer してもタイマが稼動しないのは何故ですか?
CWnd を継承したクラスを作成してそいつのオブジェクトをワーカが保有している形なのですが・・・
ちなみにメインスレッドでは稼動するようなのでスレッドの問題だとほぼ断言できます
CWnd を継承したクラスを作成してそいつのオブジェクトをワーカが保有している形なのですが・・・
ちなみにメインスレッドでは稼動するようなのでスレッドの問題だとほぼ断言できます
201デフォルトの名無しさん
2007/08/04(土) 20:57:17 >>200
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_settimer.asp
では、hWndの説明として、
このウィンドウは、呼び出し側のスレッドが所有しているものでなければなりません。
とあるな。
ttp://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/jpwinui/html/_win32_settimer.asp
では、hWndの説明として、
このウィンドウは、呼び出し側のスレッドが所有しているものでなければなりません。
とあるな。
202デフォルトの名無しさん
2007/08/04(土) 21:10:40 >>201
CWnd::SetTimer を使用しているのですが・・・
CWnd::SetTimer を使用しているのですが・・・
203デフォルトの名無しさん
2007/08/04(土) 21:27:54204デフォルトの名無しさん
2007/08/04(土) 21:36:50 >>203
そのワーカースレッドでウィンドウ作成したのか?
そのワーカースレッドでウィンドウ作成したのか?
205デフォルトの名無しさん
2007/08/04(土) 21:46:48 構成としては以下のような感じです。
メインスレッド(各ワーカスレッドをメンバ変数として保有/管理)
ワーカスレッド(以下のクラスのインスタンスをメンバ変数として保有/管理)
CWnd を継承したクラス
コンストラクタで自身を CreateEx している
ワーカスレッドから StartTimer みたいな関数を呼ばれた際に SetTimer する
このクラスの OnTimer が反応しない・・・
メインスレッド(各ワーカスレッドをメンバ変数として保有/管理)
ワーカスレッド(以下のクラスのインスタンスをメンバ変数として保有/管理)
CWnd を継承したクラス
コンストラクタで自身を CreateEx している
ワーカスレッドから StartTimer みたいな関数を呼ばれた際に SetTimer する
このクラスの OnTimer が反応しない・・・
206デフォルトの名無しさん
2007/08/04(土) 22:51:58 >>205
ウィンドウを作成するなら、ユーザーインタフェーススレッドを使うんじゃないの。
ワーカースレッドだとウィンドウメッセージを処理するために必要なメッセージポンプ
が回らないとか基本的な部分で問題がありそうな感じがする。
タイマ以外のメッセージは受信できてる?
ウィンドウを作成するなら、ユーザーインタフェーススレッドを使うんじゃないの。
ワーカースレッドだとウィンドウメッセージを処理するために必要なメッセージポンプ
が回らないとか基本的な部分で問題がありそうな感じがする。
タイマ以外のメッセージは受信できてる?
207デフォルトの名無しさん
2007/08/05(日) 16:45:34 WindowsCE 上でランダム関数を正常に使用する方法を教えてください
srand(time(NULL));
int r = rand() % 64;
と 0-63 の範囲でランダム値を取得しようと思ったのですが
time(NULL) の辺りでコンパイラに弾かれます
ちなみに #include <time.h> などのインクルード記述はしています
srand(time(NULL));
int r = rand() % 64;
と 0-63 の範囲でランダム値を取得しようと思ったのですが
time(NULL) の辺りでコンパイラに弾かれます
ちなみに #include <time.h> などのインクルード記述はしています
208デフォルトの名無しさん
2007/08/05(日) 17:11:13 >>207
よくわからんけどキャストしたら
よくわからんけどキャストしたら
209デフォルトの名無しさん
2007/08/05(日) 17:54:42 つうかエラーメッセージくらい貼れよ
210デフォルトの名無しさん
2007/08/05(日) 17:56:55211デフォルトの名無しさん
2007/08/05(日) 18:00:02 time()って無いんじゃなかったかしら…
212デフォルトの名無しさん
2007/08/05(日) 19:18:42 いくらなんでも、それぐらい自分でなんとかしろ
213デフォルトの名無しさん
2007/08/05(日) 23:27:51 pocketPCでゲーム作ってるんだが、BGM入れるとキツイなあ
oggなんだけど、9fpsしかでない、、、
pocketPCでBGM入れるのは無理かな
oggなんだけど、9fpsしかでない、、、
pocketPCでBGM入れるのは無理かな
214213
2007/08/05(日) 23:36:38 完全にデコードしてからなら余裕だが、ストリーミングだと死ぬ
でもデコード時間が長いしメモリも食う(^^;)
どうすればいいんだ
でもデコード時間が長いしメモリも食う(^^;)
どうすればいいんだ
215デフォルトの名無しさん
2007/08/06(月) 00:14:11 adpcmにしろ
216213
2007/08/06(月) 01:12:01 >>215
ADPCMを使うとかなり圧縮できました。
1分約500KBほどですが、これならわざわざoggにエンコードして使う必要は全く無かったです。
しかもほぼそのまま使えるから高速ですね。
これでやってみます。ありがとうございました。
ADPCMを使うとかなり圧縮できました。
1分約500KBほどですが、これならわざわざoggにエンコードして使う必要は全く無かったです。
しかもほぼそのまま使えるから高速ですね。
これでやってみます。ありがとうございました。
217213
2007/08/06(月) 06:21:29 やりました!バッチリです!
音楽を鳴らしても数フレームしか消費しません!
これでやっと本腰を入れられます(^^)
音楽を鳴らしても数フレームしか消費しません!
これでやっと本腰を入れられます(^^)
218デフォルトの名無しさん
2007/08/07(火) 09:51:30 いきなり「ですsます調」に変わってワロタ
219↑
2007/08/07(火) 09:52:46 sが入ってもた
このスレではお初です。
モバイル板でGSFinder+のカスタマイズ版を弄ってるものです。
本日こんな要望が来たんですが。
http://pc11.2ch.net/test/read.cgi/mobile/1185556067/728-731
要は、ツリービューの1階層分の幅を縮めてほしいらしいのですが、何か方法ありますでしょうか?
ググるなどして調べても、それらしい情報が見つけられなかったので。
モバイル板でGSFinder+のカスタマイズ版を弄ってるものです。
本日こんな要望が来たんですが。
http://pc11.2ch.net/test/read.cgi/mobile/1185556067/728-731
要は、ツリービューの1階層分の幅を縮めてほしいらしいのですが、何か方法ありますでしょうか?
ググるなどして調べても、それらしい情報が見つけられなかったので。
221デフォルトの名無しさん
2007/08/13(月) 10:39:40 自分で作るしかないんじゃ?
OwnerDrawとかも使えそうではあるが、
TreeViewだと、.net2.0以降だしな・・・
OwnerDrawとかも使えそうではあるが、
TreeViewだと、.net2.0以降だしな・・・
222デフォルトの名無しさん
2007/08/13(月) 14:28:03 >>220
もともとツリービューは小さいアイコンのサイズ(SM_CXSMICON,SM_CYSMICON)を基準に作られてるから、
ツリービュー内部の処理を変更しない限り完全な解決は無理っぽい。
自分がチャレンジしたときはTVM_SETITEMSPACING、TVM_SETINDENTとかカスタムドロー(ツリービューに
オーナードローは無い)とか色々小細工を試みたが挫折した。
どうしても見た目にこだわるならリストビューにインデントつけてツリーもどきにするのが早いかも
もともとツリービューは小さいアイコンのサイズ(SM_CXSMICON,SM_CYSMICON)を基準に作られてるから、
ツリービュー内部の処理を変更しない限り完全な解決は無理っぽい。
自分がチャレンジしたときはTVM_SETITEMSPACING、TVM_SETINDENTとかカスタムドロー(ツリービューに
オーナードローは無い)とか色々小細工を試みたが挫折した。
どうしても見た目にこだわるならリストビューにインデントつけてツリーもどきにするのが早いかも
223デフォルトの名無しさん
2007/08/13(月) 18:12:05 >>222
つ
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.treeview.drawmode(VS.80).aspx
対象プラットフォームには入ってるけど、使えるかどうかは(ryだけど。
つ
http://msdn2.microsoft.com/ja-jp/library/system.windows.forms.treeview.drawmode(VS.80).aspx
対象プラットフォームには入ってるけど、使えるかどうかは(ryだけど。
うーん、全部APIでやってるから.NET Compact Frameworkはちょっと使えそうにないし…。
これだけのためにツリービューモドキを仕立てるのも大げさすぎるし、そもそも私のスキルじゃ無理そうです。
この件は対応不能ということで流します。
情報ありがとうございました。
これだけのためにツリービューモドキを仕立てるのも大げさすぎるし、そもそも私のスキルじゃ無理そうです。
この件は対応不能ということで流します。
情報ありがとうございました。
225デフォルトの名無しさん
2007/08/15(水) 21:14:17 VS2005のC#で自分のad[es]用に
しょぼいアプリを作っているのですが、
エミュでは、ちゃんとレイアウトできているのですが、
実機にもっていったところ、横一列のボタンが
リストビューの下に置いているのにおもいっきり
重なって表示されてしまいます。
Dockをいろいろいじっても解決しません。
何か注意する点てありますか。
しょぼいアプリを作っているのですが、
エミュでは、ちゃんとレイアウトできているのですが、
実機にもっていったところ、横一列のボタンが
リストビューの下に置いているのにおもいっきり
重なって表示されてしまいます。
Dockをいろいろいじっても解決しません。
何か注意する点てありますか。
226デフォルトの名無しさん
2007/08/16(木) 09:15:01 薄汚い派遣の国、日本
最近、職場で「出戻り寄生派遣」という言葉が囁かれています。
派遣契約を切られたにもかかわらず「次の派遣先でも切られてしまって生活できません」
などと 言って泣き落としで現場マネージャーにすら一切話がないまま再契約した派遣のことです。
今月初め、半年前に切った派遣が出社してきてマネージャーも含めみんなびっくりしました。
影でコソコソ偉い人に泣きついて再契約したそうです。同じ部署の人には黙って・・・
そんなことまでして自宅の近くの派遣先にこだわって人間として恥ずかしくないのですか。
仕事に必要な技術がなく勉強する気もないのを逆手にとって
「私のような人の視点で仕事をすることも大切だと思います」と挨拶された時には
みんな絶句していました。派遣でスキルアップとか言ってる癖に技術を勉強する気はなく
「それは私の仕事ではありません」の一点張り、派遣で収入アップとか言ってる癖に
時給は前回と同じで喜んで再契約。
結局、なんの努力もせずに派遣で安直に収入を得たいだけじゃないですか。
身分不相応な商品のローンを払うために派遣だと当然足りない収入は親にも寄生して、
いつ切られるんじゃないかとビクビクしながら人事権のある人間とだけ仲良くし、
契約終了を通知されれば泣き落とし。悲惨な人生ですね。
氏んだほうがいいんじゃないですか。
最近、職場で「出戻り寄生派遣」という言葉が囁かれています。
派遣契約を切られたにもかかわらず「次の派遣先でも切られてしまって生活できません」
などと 言って泣き落としで現場マネージャーにすら一切話がないまま再契約した派遣のことです。
今月初め、半年前に切った派遣が出社してきてマネージャーも含めみんなびっくりしました。
影でコソコソ偉い人に泣きついて再契約したそうです。同じ部署の人には黙って・・・
そんなことまでして自宅の近くの派遣先にこだわって人間として恥ずかしくないのですか。
仕事に必要な技術がなく勉強する気もないのを逆手にとって
「私のような人の視点で仕事をすることも大切だと思います」と挨拶された時には
みんな絶句していました。派遣でスキルアップとか言ってる癖に技術を勉強する気はなく
「それは私の仕事ではありません」の一点張り、派遣で収入アップとか言ってる癖に
時給は前回と同じで喜んで再契約。
結局、なんの努力もせずに派遣で安直に収入を得たいだけじゃないですか。
身分不相応な商品のローンを払うために派遣だと当然足りない収入は親にも寄生して、
いつ切られるんじゃないかとビクビクしながら人事権のある人間とだけ仲良くし、
契約終了を通知されれば泣き落とし。悲惨な人生ですね。
氏んだほうがいいんじゃないですか。
227デフォルトの名無しさん
2007/08/23(木) 11:35:34 今ソフトを作ってて、その中でレジストリキーを作成したり削除したりするんですが
キーの削除がうまくいかないことがあって悩んでます。
RegDeleteKeyW でキーを削除すると 5 ( ACCESS Denied ) が返ってきてしまいます。
削除しようとしているキーは、他のソフトが使っているキーでレジストリを監視している
のかもしれません。
気づいたのですが、WM5 から TRE でキーを削除しようとすると「削除できませんでした」と
表示されることが多くなったような気がします。
WM5 では、キー削除をする場合何かしなければならないことがあるのでしょうか?
キーの削除がうまくいかないことがあって悩んでます。
RegDeleteKeyW でキーを削除すると 5 ( ACCESS Denied ) が返ってきてしまいます。
削除しようとしているキーは、他のソフトが使っているキーでレジストリを監視している
のかもしれません。
気づいたのですが、WM5 から TRE でキーを削除しようとすると「削除できませんでした」と
表示されることが多くなったような気がします。
WM5 では、キー削除をする場合何かしなければならないことがあるのでしょうか?
228デフォルトの名無しさん
2007/08/23(木) 12:04:55 それはOpen/Createが正しくできていないだけ。
229デフォルトの名無しさん
2007/08/23(木) 12:40:41 >>228
さっそく返信ありがとうございます。
リファレンス見てると Open/Create しなくてもそのまま RegDeleteKey に
キー名を渡せば削除できるんだと思っていました。
ちょっと Open してから削除してみます。
さっそく返信ありがとうございます。
リファレンス見てると Open/Create しなくてもそのまま RegDeleteKey に
キー名を渡せば削除できるんだと思っていました。
ちょっと Open してから削除してみます。
230デフォルトの名無しさん
2007/08/23(木) 13:08:16 >>228
RegCreateKeyEx でキーを開いてから RegDeleteKey で削除してみましたが、やはり
同じく 5 が帰ってきてしまいました。
RegCreateKeyEx の戻り値は 0 ( ERROR_SUCCESS ) なのでちゃんと開いているようです。
やはり何か必要なのでしょうか?
RegCreateKeyEx でキーを開いてから RegDeleteKey で削除してみましたが、やはり
同じく 5 が帰ってきてしまいました。
RegCreateKeyEx の戻り値は 0 ( ERROR_SUCCESS ) なのでちゃんと開いているようです。
やはり何か必要なのでしょうか?
231デフォルトの名無しさん
2007/08/23(木) 13:45:29 RegCreateKeyEx は KEY_ALL_ACCESS 指定してる?
サブキーがあったりしない?
そもそもそこに書き込むことが可能な権限はあるの?
サブキーがあったりしない?
そもそもそこに書き込むことが可能な権限はあるの?
232デフォルトの名無しさん
2007/08/23(木) 14:11:53 Open/Create からCloseまでの数行を載せた方が答えが早い気がす。
233デフォルトの名無しさん
2007/08/23(木) 14:32:56 >>232
そうですね。コードを書いてみます。
.NET CF1.0 で P/Invoke をつかって API を読んでいます。
\HKLM\SOFTWARE\hoge\Key\DeleteKey を削除しようとしています。
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegCreateKeyEx
(
UIntPtr hkey,
String lpSubKey,
uint Reserved,
System.Text.StringBuilder lpClass,
uint dwOptions,
KeyAccess samDesired,
IntPtr lpSecurityAttributes,
ref UIntPtr phkResult,
ref uint lpdwDisposition
);
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegDeleteKey
(
UIntPtr hkey,
string subkeyName
);
UIntPtr hkey = UIntPtr.Zero;
uint disposition = 0;
int openResult = RegCreateKeyEx(new UIntPtr(0x80000002), @"SOFTWARE\hoge\Key", 0, null, 0, 0, IntPtr.Zero, ref hkey, ref disposition);
int deleteResult = RegDeleteKey(hkey, "DeleteKey");
そうですね。コードを書いてみます。
.NET CF1.0 で P/Invoke をつかって API を読んでいます。
\HKLM\SOFTWARE\hoge\Key\DeleteKey を削除しようとしています。
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegCreateKeyEx
(
UIntPtr hkey,
String lpSubKey,
uint Reserved,
System.Text.StringBuilder lpClass,
uint dwOptions,
KeyAccess samDesired,
IntPtr lpSecurityAttributes,
ref UIntPtr phkResult,
ref uint lpdwDisposition
);
[DllImport("coredll.dll", SetLastError = true)]
public static extern int RegDeleteKey
(
UIntPtr hkey,
string subkeyName
);
UIntPtr hkey = UIntPtr.Zero;
uint disposition = 0;
int openResult = RegCreateKeyEx(new UIntPtr(0x80000002), @"SOFTWARE\hoge\Key", 0, null, 0, 0, IntPtr.Zero, ref hkey, ref disposition);
int deleteResult = RegDeleteKey(hkey, "DeleteKey");
234デフォルトの名無しさん
2007/08/23(木) 14:58:27 まずお前に必要なのは推測する能力だ。
RegOpen/Createしたあと正しくQueryValueできているか確認はしたのか。SetValueではどうなのか。
人に聞く前に手元で試せることはいくつかあるだろう。
RegOpen/Createしたあと正しくQueryValueできているか確認はしたのか。SetValueではどうなのか。
人に聞く前に手元で試せることはいくつかあるだろう。
235デフォルトの名無しさん
2007/08/23(木) 14:58:34 RegCreateKeyExの6番目のパラメタにKEY_ALL_ACCESS(0xF003F)
入れてみて
入れてみて
236デフォルトの名無しさん
2007/08/23(木) 15:00:22 >>233
最後から二行目の「\」を「\\」にしてやってみろ。
最後から二行目の「\」を「\\」にしてやってみろ。
237デフォルトの名無しさん
2007/08/23(木) 15:04:20 >>236
@"" ←これ知らんのか。
@"" ←これ知らんのか。
238デフォルトの名無しさん
2007/08/23(木) 15:05:27 C#だしな
239デフォルトの名無しさん
2007/08/23(木) 16:24:39 >>234
でた評論家野郎。
でた評論家野郎。
240デフォルトの名無しさん
2007/08/23(木) 16:56:10 だが>>234みたいなことは10分もあれば試せるわけだが。
241デフォルトの名無しさん
2007/08/23(木) 17:01:01 まあ質問の中に、これらもやったけど成功/失敗したという
情報があるとまた解決も早いよね。とりあえずアクセスマスクが
0なんだから全部失敗すると思うが。
読み書きしないでいきなり削除ということは、よそのプログラムが使う領域なんだろうなあ
情報があるとまた解決も早いよね。とりあえずアクセスマスクが
0なんだから全部失敗すると思うが。
読み書きしないでいきなり削除ということは、よそのプログラムが使う領域なんだろうなあ
242デフォルトの名無しさん
2007/08/23(木) 17:22:13 つーかもう完全に調べずにやっちゃいましたー!!ぽいよね。
実際にレジストリ操作しているサンプルソースを
探してから作れば絶対こうはならんだろって感じ。
実際にレジストリ操作しているサンプルソースを
探してから作れば絶対こうはならんだろって感じ。
またまたお邪魔します。
前回のツリービューに続き、GSFinderのハイレゾ化にチャレンジしてるんですが。
ステータスウインドウとコンボボックスの高さを縮めようと、MoveWindowやSetWindowPosを使ってみたんですが、全く大きさが変わりません。
フォントは小さくできたので、縦を縮められれば、見た目はハイレゾっぽくできるはずなのですが…。
これらの高さって、もしかして固定だったり、一定値以下に設定できなかったりします?
何か注意することとかあれば教えていただけると助かります。
前回のツリービューに続き、GSFinderのハイレゾ化にチャレンジしてるんですが。
ステータスウインドウとコンボボックスの高さを縮めようと、MoveWindowやSetWindowPosを使ってみたんですが、全く大きさが変わりません。
フォントは小さくできたので、縦を縮められれば、見た目はハイレゾっぽくできるはずなのですが…。
これらの高さって、もしかして固定だったり、一定値以下に設定できなかったりします?
何か注意することとかあれば教えていただけると助かります。
上記を書いた後でSB_SETMINHEIGHTというメッセージを見つけたものの、送っても変化なし。
送った後WM_SIZEを送れとか書かれてたので、それも試しましたが、やはり変化無し。
やっぱり一定以下には小さくできないのかなぁ。
送った後WM_SIZEを送れとか書かれてたので、それも試しましたが、やはり変化無し。
やっぱり一定以下には小さくできないのかなぁ。
245デフォルトの名無しさん
2007/08/31(金) 23:47:36246デフォルトの名無しさん
2007/09/01(土) 01:27:55 VS2005を使ってActiveSyncから配置していたのですが、
ある時から突然配置がとんでもなく重くなり、接続が切れてデバッグ出来なくなりました。
デバイス側の初期化はしたのですが、いっこうに解消せず困っています。
なにか関連するようなことがあれば教えていただけないでしょうか?
ある時から突然配置がとんでもなく重くなり、接続が切れてデバッグ出来なくなりました。
デバイス側の初期化はしたのですが、いっこうに解消せず困っています。
なにか関連するようなことがあれば教えていただけないでしょうか?
247デフォルトの名無しさん
2007/09/01(土) 10:57:40 >>246
よくわからんが、USB接続ならドライバ辺りを疑ってみるとか。
よくわからんが、USB接続ならドライバ辺りを疑ってみるとか。
248デフォルトの名無しさん
2007/09/01(土) 11:29:27 >>247
片っ端から関連する物を再インストールしていったら、ActiveSync自体が
原因だったらしく、再インストールしたら直りました。
何でこんなところが…
ご迷惑をおかけしました。ありがとうございました。
片っ端から関連する物を再インストールしていったら、ActiveSync自体が
原因だったらしく、再インストールしたら直りました。
何でこんなところが…
ご迷惑をおかけしました。ありがとうございました。
249デフォルトの名無しさん
2007/09/01(土) 14:11:55 漫画で学ぶWindowsCE
ttp://www.geocities.jp/sakusyu2006/index1.html
ttp://www.geocities.jp/sakusyu2006/index4.html
ttp://www.geocities.jp/sakusyu2006/index1.html
ttp://www.geocities.jp/sakusyu2006/index4.html
250デフォルトの名無しさん
2007/09/01(土) 16:44:54 質問です。
.NETのWebResopnseを使ってストリーミングデータをダウンロードしているのですが、
ダウンロードを中断しようとしてClose()をしようとするとそこで止まってしまいます。
普通のファイルをダウンロードするときにはちゃんと切断できるのですが…
なにかヒントだけでもいただけないでしょうか?
.NETのWebResopnseを使ってストリーミングデータをダウンロードしているのですが、
ダウンロードを中断しようとしてClose()をしようとするとそこで止まってしまいます。
普通のファイルをダウンロードするときにはちゃんと切断できるのですが…
なにかヒントだけでもいただけないでしょうか?
251デフォルトの名無しさん
2007/09/03(月) 01:08:27 eVC++4.0 で WindowsMobile (W-ZERO3シリーズ)上で動くソフトを
MFCで作ってみたら、メニューでテキストを
&1:項目1
とかやってショートカットキーを1 としたいのに、走らせると
1:項目1 (&A)
という扱いにされて、ショートカットキーが勝手にA,B,C,D で振り直されます。
こういう余計なマネをさせないオプション等の指定方法ってあるんでしょうか?
MFCで作ってみたら、メニューでテキストを
&1:項目1
とかやってショートカットキーを1 としたいのに、走らせると
1:項目1 (&A)
という扱いにされて、ショートカットキーが勝手にA,B,C,D で振り直されます。
こういう余計なマネをさせないオプション等の指定方法ってあるんでしょうか?
253デフォルトの名無しさん
2007/09/03(月) 11:47:06 >>251
仕様ということに仕様じゃまいか。
仕様ということに仕様じゃまいか。
254デフォルトの名無しさん
2007/09/03(月) 16:21:34 データロガー作ってるんだが
PPC2003以上で問題ないプログラムが
それ以前の環境でメモリーリークしまくる。
OSの問題でしょうか?
PPC2003以上で問題ないプログラムが
それ以前の環境でメモリーリークしまくる。
OSの問題でしょうか?
255デフォルトの名無しさん
2007/09/03(月) 16:31:39 >>254
おまえさんの問題だとおもう。またPPC2003以前をサポートする必要があるかという問題もある。
おまえさんの問題だとおもう。またPPC2003以前をサポートする必要があるかという問題もある。
256デフォルトの名無しさん
2007/09/03(月) 20:33:57257デフォルトの名無しさん
2007/09/04(火) 01:59:56258デフォルトの名無しさん
2007/09/04(火) 14:19:54 >>254
スレッド間での排他漏れとかあるんじゃないの?
スレッド間での排他漏れとかあるんじゃないの?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国・ロシア両軍の爆撃機が東京方面へ向かう「異例のルート」を共同飛行…核も搭載可能、連携して威嚇か ★8 [ぐれ★]
- 【速報】「女芸人No.1決定戦 THE W」9代目女王にニッチェ! 7年ぶり3度目で悲願の優勝 [牛丼★]
- 「おこめ券は米以外の食品も買える。効果的な活用を」 地元で農水相 [山形県] [少考さん★]
- 【芸能】『女芸人No.1決定戦THE W』 粗品が最後にバッサリ「優勝賞金1000万円にしてはレベル低い大会」 [冬月記者★]
- 今年の流行語大賞 『働いて働いて働いてまいります』が受賞で不快感… 過労自殺の遺族らが会見「家族にむち打つような行為だ」 [冬月記者★]
- 東京の自販機そばに金塊4200万円分、何者かに持ち去られる…札幌の50代が8000万円振り込んだ後に上京して被害 [どどん★]
- 【貧鈍】日本人、ついにゴミ箱設置で自治体、住民、事業者、域外来訪者らで揉める!街がポイ捨てゴミで溢れる [219241683]
- 日本人、インバウンド減っても貧乏すぎて国内旅行すら行けないと判明🥺 [399259198]
- 【実況】博衣こよりのえちえちダンガンロンパ4🧪
- 【実況】博衣こよりのえちえちダンガンロンパ5🧪
- 旅行ジャーナリスト『日本人が国内旅行すら行けなくなっている根本的な原因は、「お金も時間もない」ことに尽きる』本当か?🤔 [718678614]
- プログラミングって具体的に何?
