忍者ブログ

開発や調査の結果を断片的に残す目的のブログ

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

社団法人情報処理学会
社団法人情報科学技術協会
日本情報経営学会
日本ソフトウェア科学会
社団法人情報処理学会
情報文化学会
社団法人電子情報通信学会
社団法人情報科学技術協会
プロジェクトマネジメント学会

PR

ブラウザで認証情報を入力する際に
入力途中に文字列を補完してくれる機能。
一度入力すれば、データを覚えてしまう。

どこにデータを保持しているのか調べてみた。

結果はProtected Storageというサービス経由でレジストリに
格納されているとのこと。

CodeZineでサンプルが掲載されているので試して見たい。

http://codezine.jp/article/detail/147?p=1


  手間取った2つの問題への対処法

  環境は Visual C++

■エラーコード C2275

   エラーメッセージの内容が、実際の内容と直感的に結び付き難く・・・

error C2275: 'WSADATA' : この型は演算子として使用できません


参考リンク  Naknet blog | C2275の罠
    http://naknet.jpn.ph/blog/log/eid233.html

■リンカへのライブラリ設定の不足

fatal error LNK1120: 外部参照 1 が未解決です。



「ソリューションエクスプローラ」 -> 「プロパティ」 -> 「構成プロパティ」->
「リンカ」-> 「入力」-> 「追加の依存ファイル」

参考リンク Geekなぺーじ
     http://www.geekpage.jp/programming/winsock/

Linuxでコンパイル可能なプログラムを
Windowsに移植したいと考えたが、そのままビルドすると以下エラー。

error C2065: 'u_int32_t' : 定義されていない識別子です。

どうやら、Windowsでは取り扱えない型らしい。結局、

typedef unsigned long u_int32_t;
 
で定義すると、問題は無くなった。

同様に、
typedef unsigned char   u_int8_t;
typedef unsigned short  u_int16_t;
typedef unsigned int    u_int32_t;
 
らしい。


1.非同期実行(バックグラウンド実行)
  コマンドの後に”&”を付与する。

2.非同期実行時のプロセスIDを取得する
  "$!"で取得する。

3. 実行後の結果(リターンコード)取得
  非同期実行を行った処理の終了を待った後に、"$?"で取得。
  wait プロセスID
  $?


#exec.sh
#!/usr/bin/sh

sh test.sh aa &
test1pid=$!
sh test.sh bb &
test2pid=$!
sh test.sh cc &
test3pid=$!

wait $test1pid
echo $?
wait $test2pid
echo $?
wait $test3pid
echo $?

echo end

exit 0

#test.sh
#!/usr/bin/sh

a=1
while [ $a -lt 1000 ]
do
    if [ $a -eq 250 ]; then
        echo "a = $1: $a"
    elif [ $a -eq 500 ]; then
        echo "a = $1: $a"
    elif [ $a -eq 750 ]; then
        echo "a = $1: $a"
    fi
    a=`expr $a + 1`
done

    if [ $1 = "aa" ]; then
        exit 1
    elif [ $1 = "bb" ]; then
        exit 2
    elif [ $1 = "cc" ]; then
        exit 3
    fi

不覚にもはまってしまった。

LinuxでうまくいってWindowsでうまくいかない。

原因はActivePerlでは、ダブルクォーテーションのエスケープが必要なこと。

Linux: perl -e 'print "\x41"x92;'
ActivePerl: perl -e "print \"\x41\"x92\";"

原因がつかめれば、どおということは無いが。。。

試しにWinsockでつないでみる。

#include <stdio.h>
#include <winsock2.h>
#include <string.h>

int main()
{
    WSADATA wsaData;
    struct sockaddr_in server;
    SOCKET sock;
    char buf[1024];
    char send_buf[1024];
   
    WSAStartup(MAKEWORD(2, 0), &wsaData);
   
    sock = socket(AF_INET, SOCK_STREAM, 0);
   
    server.sin_family = AF_INET;
    server.sin_port = htons(80);
    server.sin_addr.S_un.S_addr = inet_addr("66.249.89.99");
    
    connect(sock, (struct sockaddr *)&server, sizeof(server));

    strcpy(send_buf, "GET ./index.html HTTP/1.1\r\n\r\n");

    if (send(sock, send_buf, strlen(send_buf), 0) <= 0) {
      perror("send");
      exit(EXIT_FAILURE);
    }
   
    memset(buf, 0, sizeof(buf));
    int n = recv(sock, buf, sizeof(buf) - 1, 0);
    printf("%d, %s\n", n, buf);
   
    fflush(stdout);

    WSACleanup();
   
    return 0;
}

 

かなりてこずった上、未解決。

一応コンパイルは可能になったのでメモ。

前提条件
・Eclipse3.2 + CDT + Mingw

Webからサンプルソース引っ張ってきて試しにコンパイル。


make -k socket
gcc socket.c -o socket
C:/xxxxx/LOCALS~1/Temp/ccUZcaaa.o(.text+0x45):socket.c: undefined reference to `WSAStartup@8'
C:/xxxxx/LOCALS~1/Temp/ccUZcaaa.o(.text+0x94):socket.c: undefined reference to `WSACleanup@0'
collect2: ld returned 1 exit status
make: *** [socket] Error 1

因みにmakefaileに記述したコマンドは以下。
cc -g -o socket.exe src/socket.c -L"C:/MinGW/lib" -l"wsock32"

原因がなんだか分ってないが、DOSプロンプトから上記コマンドを投入することでコンパイル可能に。

リンカの設定か?

元旦だが去年の抱負を振り返ってみる(タイミング遅!!)

  1. 良いお父さんになる
  2.  技術の基盤固め
  3. 本を10冊読む

>1. 良いお父さんになる
>息子は1歳。多感な時期だから(多分)。仕事仕事で追われていたらおじちゃんと呼ばれかねない。お父さん
>と覚えてもらえるよう常に気をつけましょう。家庭も・・・
12月下旬やっとパパと呼んでもらえた。感激!! ただ父親としてはどうだろうか。純粋で無垢な息子に対し
自分のエゴ、大人の都合を押し付けている気がする。子供はどんどんものごとを吸収し、一生懸命成長しようとしている。常に大人の行動を観察し真似て、試行錯誤する。その対象の大半が親である私と嫁になるのだが
悪い手本となってしまっているような。子供の躾の前に私を含めた大人の躾が必要だ。

2. 技術の基盤固め
>就職して3年。仕事の全体が見えてきた。と余裕をかましていたら、先輩・お客さんに基本的な指摘をされる
>日々。基本的なことを当たり前にできるようにする。技術の基盤としては、流行に流されず
>汎用的な知識を身につける。RFCをベースに技術者試験の内容も押さえる。
基本的な指摘をされるのはかわっていない。ちょっと諦めかけ。
技術についてはネットワーク技術者試験受験。午後1で不合格。詰めが甘かった。
知らないことをたくさん知れた点ではとてもよかった。継続して勉強すべし。次回はNWもしくはDBを受験。

3. 本を10冊読む
>仕事仕事家庭と日々に追われて、集中しすぎないこと。広い視点で物事を解釈できるように。
>気を休ませるために技術書以外の本を10冊読む。
10冊確実によんだが、題名を覚えていない。もしかして内容も覚えていないかも。全てに言える事だが、
何かしら記録を残すことが重要。

29ec749fgifxmlの対応付けの設計についてのメモ

制限
・ 1つに対して2つのxmlタグには対応付けできない

Excel画面上の項目を以下のように分割してマッピング
・それぞれの機能(業務)
・共通部分
・添付ファイル部分


制限で示したとおり、1つのセルに対して2重マッピングが行えない。
このため、複数の機能を実装したExcelファイルの場合
各機能で使用する共通部分について取り扱い方に困る。

解決方法は各機能と共通部分を分離してマッピングすること。
また添付ファイル部分については、以下。

Excelをブラウザの代わりに使用するように実装している為、
Excel上からファイルの送信を行える。
このとき、添付ファイル部分を分離せずに他の部分と同じスキーマで
マッピングを行うと、添付のために指定したファイルの全PATHが
xmlに含まれてしまい、セキュリティの観点からよろしくない。
解決方法は、添付ファイル部分のみのスキーまでマッピングを行い、
この部分のみエスクポート+送信は行わない。ファイル名の受信にのみ
使用する。
因みに、ファイル名はリクエスト内にマルチパートで含まれる為サーバ側で
こちらを取得しDBに格納する。

◎ カレンダー
04 2025/05 06
S M T W T F S
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
◎ 最新トラックバック
◎ プロフィール
HN:
Kazoo
性別:
非公開
職業:
プログラマ
趣味:
プログラム
◎ ブログ内検索
Script: Ninja Blog 
Design by: タイムカプセル
忍者ブログ 
[PR]