December 30, 2011

VB.NET P/Invoke たとえば、 midiOutGetDevCaps

ひさびさに VB.NETをさわって引っかかったのでメモ。

MSDN - MIDIOUTCAPS
http://msdn.microsoft.com/ja-jp/library/ms711619.aspx

MSDN - midiOutGetDevCaps
http://msdn.microsoft.com/ja-jp/library/cc410545.aspx

MMSYSERR_INVALPARAM
指定されたポインタまたは構造体は無効です。

から抜けられなかった。エラーメッセージを偏って解釈して構造体の宣言に目がいってたけども、どうやら Declare宣言の関数引数/戻り値部分に問題があったようだ。むぅ
戻り値がInteger型でなくLong型(NGケース)とかだと、確かオーバーフローエラーが発生する。
---------------------------------------
NG<>は表示の都合上、全角

Private Declare Function midiOutGetDevCaps Lib "winmm" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Long, ByRef lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long

Private Declare Function midiOutGetDevCaps Lib "winmm" (ByVal uDeviceID As Long, ByRef lpCaps As MIDIOUTCAPS, ByVal uSize As Long) As Long

---------------------------------------
OK<>は表示の都合上、全角

Private Declare Function midiOutGetDevCaps Lib "winmm" Alias "midiOutGetDevCapsA" (ByVal uDeviceID As Integer, <MarshalAs(UnmanagedType.Struct)> ByRef lpCaps As MIDIOUTCAPS, ByVal uSize As Integer) As Integer

---------------------------------------
ちなみに構造体宣言部
構造体のwMidのShort型をInteger型とかにすると、例えば、szPname(デバイス名)の頭が欠けたりする。

Public Const MAXPNAMELEN = 32
<StructLayout(LayoutKind.Sequential)> _
Public Structure MIDIOUTCAPS
Public wMid As Short
Public wPid As Short
Public vDriverVersion As Integer
<MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAXPNAMELEN)> Public szPname As String
Public wTechnology As Short
Public wVoices As Short
Public wNotes As Short
Public wChannelMask As Short
Public dwSupport As Integer
End Structure

---------------------------------------
■ サンプルMain(書きかけ
Imports System.Windows.Forms
Imports System.Runtime.InteropServices

Dim MIDIDeviceCnt As Integer = midiOutGetNumDevs() - 1
Dim MIDIOutDeviceInfo As New MIDIOUTCAPS
Dim ret As Integer

For index As Integer = 0 To MIDIDeviceCnt
ret = midiOutGetDevCaps(index, MIDIOutDeviceInfo, Marshal.SizeOf(MIDIOutDeviceInfo))
Next

| | Comments (0) | TrackBack (0)

June 22, 2011

ページネーター CakePHP

CakePHP Version 1.2.5
Router::connectNamed(false, array('default' => true));

を APP\config\Routes.php に。

CAK\LIB\ROUTER.PHP
96行
/**
* Stores all information necessary to decide what named arguments are parsed under what conditions.
*
* @var string
* @access public
*/
var $named = array(
'default' => array('page', 'fields', 'order', 'limit', 'recursive', 'sort', 'direction', 'step'),
'greedy' => true,
'separator' => ':',
'rules' => false,
);


244行
/**
* Specifies what named parameters CakePHP should be parsing. The most common setups are:
*
* Do not parse any named parameters:
* {{{ Router::connectNamed(false); }}}
*
* Parse only default parameters used for CakePHP's pagination:
* {{{ Router::connectNamed(false, array('default' => true)); }}}
*
* Parse only the page parameter if its value is a number:
* {{{ Router::connectNamed(array('page' => '[\d]+'), array('default' => false, 'greedy' => false)); }}}
*
* Parse only the page parameter no mater what.
* {{{ Router::connectNamed(array('page'), array('default' => false, 'greedy' => false)); }}}
*
* Parse only the page parameter if the current action is 'index'.
* {{{ Router::connectNamed(array('page' => array('action' => 'index')), array('default' => false, 'greedy' => false)); }}}
*
* Parse only the page parameter if the current action is 'index' and the controller is 'pages'.
* {{{ Router::connectNamed(array('page' => array('action' => 'index', 'controller' => 'pages')), array('default' => false, 'greedy' => false)); }}}
*
* @param array $named A list of named parameters. Key value pairs are accepted where values are either regex strings to match, or arrays as seen above.
* @param array $options Allows to control all settings: separator, greedy, reset, default
* @return array
* @access public
* @static
*/
function connectNamed($named, $options = array())

| | Comments (0) | TrackBack (0)

June 21, 2011

DB別エスケープ - CakePHP

CakePHP Version 1.2.5(ぐらいとおもった)

DBごとにエスケープの仕方って違っていて
環境を変える時にできるだけ上手く行く方法はないかと。
なにか良いアイデア無いかと考えてたら良いものがあった。

↓ソースから抜粋 ( CAKE/LIB/MODEL/datasources/DBO/dbo_sqlite.php )
/**
* Returns a quoted and escaped string of $data for use in an SQL statement.
*
* @param string $data String to be prepared for use in an SQL statement
* @return string Quoted and escaped
*/
function value($data, $column = null, $safe = false)

#使い方 1 // モデル内

$this->getDataSource()->value( エスケープしたい変数);

#使い方 2 // コントローラ内

$this->Model->getDataSource()->value( エスケープしたい変数);

Modelのquery( string $sql)に直接SQLを書く時に使える。
ちなみに、疑似バインド機能、(query( string $sql, array $bindvaluearray))というのを使えばエスケープをしてくれるみたい。
$this->query( ); // モデル内
$this->Model->query( ) // コントローラ内

| | Comments (0) | TrackBack (0)

June 19, 2011

KOTOWAZA

泣いて馬謖を斬る(ないてばしょくをきる)
と、最近テレビで聞いたことがない。

李下に冠を正さず
は少し前にブームがあった気がする。

マスコミに出てくる、そういうことわざのトレンドでなにかつかめないかな。

| | Comments (0) | TrackBack (0)

June 18, 2011

ああ。また再起動だよー(T_T)

パソコンがー!

で、しょうがないから再起動の間携帯のフルブラウザで調べものしようかとしててGoogleの検索かけたんだけど、検索結果から飛べないページじゃん!?

最近どんどん飛べないページ多くなってる気がする。
もうやめてほしいゆー!

| | Comments (0) | TrackBack (0)

おひさしぶりんこ♪

がんばらんとだめです!
ブログもそうですが、いろいろと!


セブンの記事を見て、「小売大手って」書いてあって、微妙な表現だー、と。
そう思ったのですよ。
そういえば、サークルKの”ネットワークプリント”いつ始まるんでしょうか。
3月11日ぐらいのタイミングでニュースを見たんですが、その後シャープのプレスリリースには延期ってあって、6月末あたりに開始するかもみたいな表現があったんですけど。

ココログ OpenID 対応してくれるとうれしいなぁ。
パスワードとかの保存を使えって言われそうだけど。

Wオープンのスマフォでないかなぁ。

ブログ書くまでが、特にログインがなかなか大変です。
と、書いたらJavaScriptがブログ投稿に必須になってたみたい。。。

| | Comments (0) | TrackBack (0)

January 01, 2011

あけまして、おめでとう!

今年もよろしくお願いします。

パソコンは止まるし、さっそく熱があるのか寒気がしてるんですけど、今年はよい年にしたいです
\(^-^)/

| | Comments (0) | TrackBack (0)

December 10, 2008

派遣、解雇で

問題になってきました
派遣元の会社に文句を言ってるシーンをあまり報道などで見ないです。
派遣先に文句を言ってるシーンはみますけど。

なぜ 派遣元の会社が標的にならないのか理由が気になる。
この派遣元会社名をもっと公表してもいいんじゃないか。
また、このときとかのためにピンはねとか表現も一部でされる派遣会社の取り分があるのではないか。
もしくは、派遣会社を認可した大臣や機関に文句を言ったらだめだろうか。
また、派遣関係の法律を通した関係政治家や審議員とかはどうだろうか。
派遣先にももちろん問題あるけどね。

| | Comments (0) | TrackBack (0)

December 03, 2008

か、、、買えない。

ジツワ・・・。
けっこう「モノ」が買えなくて困ったりもしてるんです。


ごみの分別が細分化されだしてけっこうたちました。
なにかのテレビ番組で、一度ゴミを分別する習慣がつくと、ごみを分別せずに捨てることがわるいこと・気になることをしているように感じる、、、みたいなのを見たことがあります。
世間がリサイクルなどを叫ぶ前からモノがなかなか捨てられなかったんですけど。
今話題の環境的にも、今までお世話になっといて使えなくなったらすぐ捨てるって意味でなんとなく精神的にも、捨てるのが嫌いなんです。
それでモノが捨てられないと溜まってくのは見えてるので、なので、そういうのを考えたりしちゃうとなかなか新しいものが買えなかったりします。
特にあまり安くてすぐこわれそうなものは。

もちろん、普通に金銭的に買えないのも事実ですけど、それにプラスして、時々このシリーズの最上級のモデルなら買ってもいいかなって思っても、この最上級のモデルが金銭的に買えないために一段階妥協したモデルを探すこともせず、例え探しても買うのあきらめちゃったりします。
特に家電製品とかは。
この場合は買った後新しいモデルが出たりして「しまった!」って後悔を恐れてるってのもありますけど。
急いでとりあえず最低ゲンの機能のみでいいから欲しいと思って買う見たいのもアリなんですが、それだとすぐ要らなくなりそうで、でも捨てられないからよーく用途考えないまま何らかの理由で急いで買わなきゃならないときは切ないときがあります。

そういうのもあいまって自作PC(必ず電子部品や基板とかを自然に負荷をかけない形で100%リサイクルされるという保証とか・が無いので)が作れないし部品買えない。
っていうか今って、自作PCはメーカーPCみたいにリサイクルってどうなってるんだろ。
あんまり良い情報に合わないんだけど、燃えないゴミでリサイクルって観点を経ずにそのまま埋めたて行きとか。

| | Comments (0) | TrackBack (0)

December 01, 2008

ケイタイが、パソコンのキーボードが・・・。

携帯の下キーが効きづらい・・・
全く効かないわけじゃないけど、かなり効きづらい上に押した感じがしない・・・。
結構おおきいよ、これは。
すごくショックだよ~
もしかしたら長く使うかもしれないと思って、1年のバリュープランで買って
ちょうど今月に割賦金を払い終わるはずなのに・・・。

それに、
ノートパソコンのキーボードの「Tab」キーがへんな感じがする
効かないわけじゃないんだけど、さわった感じがフワッと・・・

あああああ~

| | Comments (0) | TrackBack (0)

«無差別なのか、(ある母集団内での選出方法が)無差別なのか。