Program Archive
2次元配列の処理検討メモ
- 2008-05-12 (月)
- Program
画像処理のプログラムを作っていた所、色んな開発言語で使用したいとの事でDLL化が必要になったのですが、、、
久しくプログラム開発から遠ざかっていたので時間が掛かりまくり・・・orz
しかも関数作っている最中に、引数へ割り当てた変数が大きすぎてメモリリーク起こすし(苦笑)
普通に変数宣言するとスタックメモリに割り当てられますが、スタックに割り当てられるメモリサイズが決まっているので、大きなサイズの変数が必要な場合は本来ヒープに割り当てないといけないらしい。静的メモリから動的メモリへなんですが私の苦手な方法です(;´Д`)
社内に詳しい人が少ない事が災いして1週間くらい試行錯誤しました。なんとかネットにそれらしき事が書いてあるのを見つけたのでそれで色々トライしてみました!社員とC言語を使える人はそれなりに居るのですが、プログラム専門の会社じゃないので苦労しちゃうんでしょうね。
こうして見ると私はメモリ管理についてあまり考えずにプログラムを作ってきたんだなぁ・・・と実感(´ー`;)
今までは大規模なプログラムを作ってこなかったので良かったのですが、これからは少し作り方を考えていかないと思いました。
で、実際の検討メモを。
VB.NET 2次配列変数のコピー処理
- 2008-03-12 (水)
- Program
2次配列変数のコピー手段メモ。
配列分だけLoopして1つずつコピーでも良かったんですが、Loop数が多いと結構時間が掛かるようです。
例)
For i = 0 To W_Max - 1
For j = 0 To H_Max - 1
RGB_R(i, j) = ImageData_R(i, j)
RGB_G(i, j) = ImageData_G(i, j)
RGB_B(i, j) = ImageData_B(i, j)
Next j
Next i
仕方なく別な手段を探していたら面白そうな関数「Array.Copy()」を見つけました。
これは一気にコピー出来るみたい。
それを使うとこんな感じ。
Array.Copy(ImageData_R, RGB_R, CInt(W_Max) * CInt(H_Max))
処理の時間が格段に早くなって、それらしき数値を取っていたので喜んでいたのも束の間。
実は一部データが正常にコピーされていないことが判りました。
更に別な方法を探してみると、、、
MS SQLとVS2008
- 2008-03-06 (木)
- Program
VisualStudio2008(以下VS2008と省略)で興味深く思ったのが、WEBアプリケーション開発です。
特に「データベース」にデータを入れて、その内容をグラフとかで視覚的な情報提供をするといった目的には最適でした。
最近はMicrosoftから提供している開発言語(VS2008とか)、サーバー(SQL Server)のExpress版は機能限定とは言え無料ですし、小規模環境を作って勉強するにはうってつけ。学生とかの勉強用にもいいみたいです。私の方はMSDNの契約をしているのでPro版とかも使えるのですが、機能が多すぎて理解するのに時間が掛かるのでExpress版でひとまず勉強中(笑)
本日の失敗
- 2006-09-14 (木)
- Program
640×480ピクセルのビットマップファイルをRGB形式のCSV変換するプログラムを作っていたのですが・・・
最後の方のデータ領域がおかしくなる不具合を発見(´ー`;)
最初はファイルサイズが大きすぎるので40×30に圧縮して確認してたんですが、その時には問題が発生してませんでした(`・ω・
´)
さて原因はなんだろー??
と思い、プログラムソースとニラメッコです(*-ω-)
すると、、、
VB6でのトラブル。。。
- 2006-09-11 (月)
- Program
今日は、土曜の夜(ゴールデンタイム)
に会社からの呼び出しで解決しなかった課題と自分の仕事を平行してやってたので脳内疲労が極限まで達してました(;´Д`)
私の仕事じゃないけど海外とのやり取りなので遅延不可能で急遽。。。って感じです_| ̄|○
結局問題は、、、ディストリビューションウィザードだったようです。
普通にセットアップ用プログラムを用意しても特定環境下だとインストール出来ないのが今回の問題。
Windows2000でダブルバイト文字(漢字とか)を使ったユーザー名でログインした状態で、
作成したセットアップを実行するとテンポラリ上で上手くパスを取得出来ずエラーを起こすらしいです。
〔参考〕
マイクロソフト サポート技術情報 -
416585
ふぅ、、、ここまでの道のりが長かったです。国内だったら直接見て指示出せるんだけど、海外の遠距離指示は厳しい・゚・(ノД`)・゚・
とりあえず、今後もあり得るのでサポート情報通り、ウィザードそのものを直しましたよ(*-ω-)
あ!?解決したけど私のアウトプットにはならない罠です∑( ̄□ ̄;ウレシクナイ
とりあえず、自分の仕事も進んだからいいかな。。。今日はもう寝ようっと。。。
《検討中》ログ見る君forECO Part3
- 2006-08-24 (木)
- Program
こんな感じです~。
とりあえず、ひとさまの会話を公開するのもなんなんでネコマタ特集でw
一応自分のネコマタ「ヨーコ」の会話だけ表示するフィルタがかかってます(*´∇`*)
《検討中》ログ見る君forECO Part2
- 2006-08-21 (月)
- Program
やっと基本ルーチンの雛形が出来ました(*´∇`*)
なんとかVB6で作成出来るようになったので、この後の仕上げは早いと予想してます。
ひとまず当月のログから指定した件数分(100件とか)を表示させることになります。
前に説明したように「OPEN、PARTY、RING、WIS」
の区分けは無いフォーマットなので指定したキャラ名のみ表示させる形になるかなぁ。。。
それに加えてタブグループを追加出来れば、上手く区分けして使うことが可能かもしれません。
そんな訳で、もう少し仕事が落ち着いたら仕様を含めて掲載したいと思います( ̄^ ̄ゞ
《検討中》ログ見る君forECO
- 2006-08-17 (木)
- Program
最近ECOでチャットが頻繁なせいかログが流れるの早いです(-ω-;)
と言うことでディプスファンタジアで愛用していた『ログ見る君』もどきのソフトを作ってみようかと考えてます|ω・)b
ログのフォーマットは単純なので簡単かと思いきや、「OPEN、PARTY、RING、WIS」の区別が無い罠です。
仕様作りがちょいと面倒かもしれませんが・・・(@_@;)
まぁ遊び気分でチャレンジですね!
ディプスをプレイした事無い人は判らないと思うので、イメージはこんな感じですよ~(*´∇`*)
開発言語(VB)の謎。。。
- 2006-02-13 (月)
- Program
久々に仕事でハマりました。しかもプログラム組む時に原因が判らない事象に遭遇したのは久々(;´Д`)
C言語とかで組んでた時はメモリの使い方が・・・なんてこともあったんですけど、
まさかVisualBasicで同じような現象にあうとは思いませんでした(*-ω-)
あんまり専門的な話をしてもしょうがないのですが、結果は一緒でも過程が違うとダメってことでした。
「For Next」構文絡みで異常をきたしてたのですが、問題部分は別にあって・・・。いや~、これで6時間以上も費やすとは・・・_
| ̄|○
まだまだ実力不足ですね。。。(´・ω・`)
DLL作成
- 2005-06-23 (木)
- Program
自称SEのアルです、こんにちわ(*ノノ)
プログラムを作成するのは、ほんっと久々で、ちょいと新鮮な気分します(*´¬`)
今回はプリンタポートを使ったハードウェア処理をVisual C++(以下VC)でDLLライブラリ化して、
それをVisualBasic(以下VB)で呼び出すプログラムを作っております。
うちの会社でVC使える人は限られてくるので、なるべくVBでソフトを作って、
VB勉強すれば誰でもいじれる様にしておきたいってのが狙いです(`・ω・´)
久々にDLLを作ったので、まぢめに苦戦しました(;´Д`)
以下、専門用語が出るので興味ある方だけ見てください(`・ω・´)