« 2009年2月 | トップページ | 2009年4月 »

Windows Home Serverが

そいや、Windows Home ServerがMSDNでダウンロード可能になっているのね。

結構評判よさげなので、購入も考えてただけに、うれしい。

そのうち入れてみる。

| | コメント (0)

MD5値を返すExcelUDF(Test Version)

MD5値を返すExcelUDF(過去記事)から結構時間が掛ってしまったが、とりあえず。

なぜ時間が掛ったかというと、Excel2007とExcel2003以前の両対応にしたから。
#内部で使ってる自作クラスは未完成だけど・・・

本当は、1ページ使って公開するところなんだけど、予定完成形までにはまだいろいろと必要なので、ブログ記事として出しておく。

続きを読む "MD5値を返すExcelUDF(Test Version)"

| | コメント (0)

[メモ] Excel2007SDKのxloper(xloper12)はデフォルトアラインメントでなければダメ

やってみてはじめてわかることばかり。

Excel2007SDKのヘッダで定義されている構造体について、設定によって異なるから困るとアラインメント?として書いたわけだが、結局、VisualStudioのデフォでOKらしい。

一応、#pragma pack(push,1)~#pragma pack(pop)で囲んでやってみたんだけど、例外発生してアウト。

囲まずにそのままなら問題なし。

まぁ、当たり前だけどさ。

でもさ、ちゃんとオフセット位置が固定になるように、定義されるべきだと思うのは今も同じ。
COMのようにエクスポートされていればいいんだけど、ヘッダファイルに定義されているだけじゃ、なんともなぁ。

| | コメント (0)

プチ回避策64

プチトラブル64として、64bitVista上でのちょっとした問題点を挙げたのだが、回避策らしきものをやっと見つけたので。

32bitでは安定動作することは経験済みなので、ひょっとしたらと思ったわけだ。

続きを読む "プチ回避策64"

| | コメント (0)

IntelliSenseの不調はメモリ不足が原因か?

[メモ] VS2008のC++エディタのIntelliSenseで書いたけど、下側がダメなんじゃなくて、全体的になんか動きがおかしい。

おかしいときには、.ncbファイルを削除して、自動再作成に任せれば復活するんだけど、どうしても、クラスメンバに対しても、有効なものと、効かないものがある。

.ncbファイルのサイズは30MBほど。

メモリ不足が原因かも知れない。

続きを読む "IntelliSenseの不調はメモリ不足が原因か?"

| | コメント (0)

配列の次元を変えても同じメモリ(C++)

C++です。
Cではありません。
#いつものごとく、もしかすると間違ってるかも知れないので、要注意。
#当たり前すぎるかも知れないので、だとしたら恥ずかしいが、メモとして。

表題だけでは何を言いたいのかわからない(かも知れない)ので、前置きを。

手始めに。

int a[10];
int (&b)[sizeof(a)/sizeof(int)] = a;

これは、bという参照でaを読み替えているだけなので、aとbは同じメモリを使う。
そして、当然、sizeof(a)とsizeof(b)は同じ値になる(というより、同じでなければならない)。
まぁ、普通は、↓みたいな関数引数に使う技だと思う。

template <size_t size> void hoge(int (&arg)[size]);

配列数の情報が一発でやり取りできるため、非常に有効だと思う。

もうひとつ。
多次元配列を定義した場合、そのメモリ領域は、一度に確保されれば、連続している。
#はず。
なので、以下のようなコードが書けることは(よく)知られている(んじゃないかと思う)。

int a[10][10];
int *p = (int*)a;
for(int i = 0; i < sizeof(a)/sizeof(a[0][0]); i++)
{
    p[i] = i;
}

sizeof(a)/sizeof(a[0][0])みたいなことは常套手段なんだけど、しかし、sizeof(p)/sizeof(p[0])といった、pを使ったコードには置き換えられない。
この点で、ポインタよりも配列のほうが情報量が多いということになる。
#配列サイズは実行時に動的に変わるものではないため、コンパイルまでだけど。

では、同じことができるコードを配列として書くにはどうしたらよいかというのが、問題。
[y][x]→[x * y]にするにはどうすればよいのかということ。
当然、コピーじゃなくて、同じメモリ位置を参照する方法で。

続きを読む "配列の次元を変えても同じメモリ(C++)"

| | コメント (0)

バグ発見?

XLLを創る方法にあるコードなんだけど、xlAutoOpen内で呼んでるExcelの第3引数が10なんじゃないかと、思うのだがね。

少ない分にはなんとかなるのかも知れないけどさ。

っちゅうことで、コメント入れて修正しておいた。

なんか、こういうところにクオリティの低さが少なからずあるので、SDKのヘルプとかMSDNとかも鵜呑みにできない。

| | コメント (0)

I10-003にだけは・・・

というわけで、今年はじめから月一として余ったチケット消化を続けてきたXMLマスター
001,002と順調に進み、最後のチケットを余すのみとなったので、003も再び受けてみることになりましたとさ。

しかし、しかし、だ。
この試験、当然ながら、難易度がかなり高い。
特に、003(XMLマスター:プロフェッショナル(データベース))は約30問で8割合格、つまり、6問以上間違えたら、アウト。

そして、002試験のときのような技は使えない。
受けた人はわかると思うが、通常の画面とも異なる画面になっている。
回答欄が右にある。
#別画面って問題が多いんだから、3ペイン型にしてほしいと思った人は少なくないと・・・

続きを読む "I10-003にだけは・・・"

| | コメント (0)

警告が出た記憶が無いんだけど

あの、127.0.0.1を削除しちゃうWindows Defenderの件

常用のX60では警告が表示された記憶がないにも関わらず、"取り除く"で処理されている。

気付かないうちに、警告に従っていたのかも知れないが、Windows Defenderオプションの既定の操作で「推奨の操作(定義ベース)」になっていると、勝手に処理されてしまうようだ。

もしかしたら、SpyNetに参加していることも何か関係があるかも知れないけれど、それにしても、hostsからエントリを勝手に削除するのはいかがなものかと。

削除したのがWindows Defenderであることをコメントで記述しておくとか、なんとかできなかったのだろうか・・・

| | コメント (0)

[メモ] CDHtmlDialogの使い方

自分用メモなので、他のサイトを見たほうがいいかもね。
#間違ってるかも知れん。

CDHtmlDialogを継承してダイアログを作ると、入力要素の追加削除が文字列ベース(HTMLだからね)でできるので、いろいろと楽。

なんだけど、それらデータの設定や取得ができないとなんにもならんのでメモ。

続きを読む "[メモ] CDHtmlDialogの使い方"

| | コメント (0)

恐博写真追加

プテラノ丼

昨年の福井(恐竜博物館)日帰りの写真が、骨だくさんって雰囲気じゃなかったので、追加した。
相変わらず整理下手かつ面倒なのでアップのみ。

日帰りの様子は過去記事にあるけど、プテラノ丼自体の写真は載せてなかったと思うので、一応。

以下、独り言。

続きを読む "恐博写真追加"

| | コメント (0)

訂正:hosts書き換えると警告

なんか気になったので、試しに、もう一度スキャンして、「取り除く」を選択してみた。

したら、

127.0.0.1       localhost

だけが削除されるのな。

とりあえず、プライベートIPのほうは問題ないらしいので、あれは間違い。

それにしても、デフォルトであるものをどうして、"警告:中"にするのか。
やるなら、Windows Updateとかでパッチ適用だろうと思うのだが・・・

さて、127.0.0.1 localhostが無いと、いろいろ問題がありそうな気がするのだけども、dnsを引ける状態ならば名前解決はできるようなので、とりあえず放置して様子見ておくとする。

続きを読む "訂正:hosts書き換えると警告"

| | コメント (0)

[メモ] OutputDebugStringに書式指定を

OutputDebugStringで書式指定ができるようにするコード。ただし、C++。

昔はどうだったかはわからんけど、今のOutputDebugStringはマクロなので、置き換えてしまえば良い。

続きを読む "[メモ] OutputDebugStringに書式指定を"

| | コメント (0)

hosts書き換えると警告

Windows DefenderでSettingsModifier:Win32/PossibleHostsFileHijackが見つかったらしいので、確認すると、hostsファイル。

中身を確認しても、自分で編集した以外の情報はない。

編集してあること自体がチェック対象として認識されるっぽい感じだ。

確かに、hostsの書き換えは悪意を持ったサイトへの誘導方法としてはベタなのだが、それなら、プライベートIPは書かないだろ、普通・・・

とりあえず、「無視」を選択しておいたが、hostsは書き換えないものになったのだろうか?

超小規模LANの場合、DNSとかDHCP用意するより、固定IP+hostsファイル書き換えのほうが楽ってのが一般常識だったと思うんだけどなぁ。
永遠普遍な一般常識なんてものは無いんだけどさ。

| | コメント (0)

プチトラブル64

以前BlackJumbpDog(現時点で最新版)をVista64にインストールしたんだけど、どうも動作がおかしい。

リダイレクト処理で他サイトへ飛ぶようなサイトで、どうもサイト移動ができてないようなのだ。

たとえば、googleの検索結果をリンクすると、URLは切り替わるのに、アイコンは変わらないし、googleのトップページや、パスが見つからないといったエラーページが表示される。
#URLを直接打ち込んだり、リダイレクトがない状態では問題は発生しない。

どうも、ホスト名の振り分けができていないようなのだが、さすがに、64bitはインストーラも対応してないってことは、保障外動作なので、騙し騙し使うしかない。

この環境は、開発用なので、できれば安定動作してほしいんだけどなぁ・・・
やっぱり、創るしかないのか。

| | コメント (0)

たったの12000円

24万円の物を買ったら、消費税にしかならんじゃないか!

| | コメント (0)

[メモ] VS2008のC++エディタのIntelliSense

もしかしたら設定漏れかも知れないけど。

VS2008のC++コードエディタで上下分割すると、上ではIntelliSenseがちゃんと動くのに、下では動かない。
#SP1は適用してある。

よって、コードを書くのは上側ですべき。
・・・ってことなんだろうけど、なんだかなぁ。

| | コメント (0)

なぜHTTPのときだけ情報送信時に不安になるか

WEBページで情報をPOSTなりするとき、やはりSSL暗号化(HTTPS)されていたほうが安心できる。

しかし、電子メールとなるとどうだろう。
何気なく、パスワードなどを書いて送ったことはないだろうか。
SMTPもPOPも基本的に平文だ。
IMAPも平文か。

続きを読む "なぜHTTPのときだけ情報送信時に不安になるか"

| | コメント (0)

昨年夏の豪雨時のきっぷ

昨年の夏、豪雨で電車が止まったんだよね。
熱海だった。
熱海から小田原の間って、海に面していて、雨風波に弱いんだよね。

で、東海道線で、横浜へ向かうために、熱海で5時間待ち。
ようやく、振り替えてもらえたわけだ。

その切符の写真があったので、載せておく。
ピンボケだけど。

続きを読む "昨年夏の豪雨時のきっぷ"

| | コメント (0)

union と struct

C++(VC++2008)で、unionは継承元になれないとコンパイルエラーが出る。

でも、struct定義に変えて内部を丸ごと無名unionで構成すると、コンパイルは通るし、アクセス方法も変わらない。オフセットも変わらない。

なんでやねん・・・

確かに無名の定義が入ることで、構造的には異なるけど、だからといって、unionを継承できない理由にはならんと思うんだけどなぁ。

| | コメント (0)

ケータイについて思う

携帯電話のこと。

「なぜ、片手が塞がるタイプしか出さないのか?」という疑問。
イヤホン使えばいいとか、そういう話ではない。
#そして、以下は俺の想像であり、事実かどうかはわからないので、要注意。

続きを読む "ケータイについて思う"

| | コメント (0)

MSDNのステップアップは見送り

そうそう、MSDNのキャンペーンなんだけど、ステップアップは、Open Value契約(3年契約)の方だけらしい。

なんだかな。

2年契約のでも何とかする方法はある。あるんだけど・・・

続きを読む "MSDNのステップアップは見送り"

| | コメント (0)

アラインメント?

オフセットの計算は難しい。

#include <stdio.h>
#include <stddef.h>
struct A
{
    short a1;
    short a2;
    short a3;
};
struct B
{
    short b1;
    int b2;
};
struct C
{
    short c1;
    struct A c2;
};
struct D
{
    short d1;
    struct B d2;
};
struct E
{
    short e1;
    union
    {
        struct
        {
            short e2;
            short e3;
            short e4;
        };
        struct
        {
            short e5;
            int e6;
        };
    };
};
int main()
{
    printf("offsetof A::a2 => %d\n", offsetof(A, a2));
    printf("offsetof B::b2 => %d\n", offsetof(B, b2));
    printf("offsetof C::c2 => %d\n", offsetof(C, c2));
    printf("offsetof D::d2 => %d\n", offsetof(D, d2));
    printf("offsetof E::e2 => %d\n", offsetof(E, e2));
    return 0;
}

構造体のメンバのオフセットを求めるだけなんだけど・・・

続きを読む "アラインメント?"

| | コメント (0)

« 2009年2月 | トップページ | 2009年4月 »