忍者ブログ

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

×

[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プロンプトから上記コマンドを投入することでコンパイル可能に。

リンカの設定か?

このサイトを参考にさせていただいて、Linux→Windowsの
クロスコンパイル環境作成に挑戦。

http://www.yynet.tama.tokyo.jp/~yokota/INSTALL/

参考より少しずれたが以下のファイルを用意。
 ・mingw-runtime-3.14.tar.gz
 ・w32api-3.11.tar.gz
 ・directx-devel.tar.gz
 ・opengl-devel.tar.gz

 ・binutils-2.18.50-20071123-src.tar.gz

 ・gcc-core-3.4.5-20060117-1-src.tar.gz
 ・gcc-g++-3.4.5-20060117-1-src.tar.gz
 ・gcc-g77-3.4.5-20060117-1-src.tar.gz

binutilsのインストールまでは正常に行ったがgccで失敗。

i386-mingw32msvc-ar: コマンドが見つかりませんでした

しかし、findで検索すると存在することは確認。しょうがないのでそこにパスを通してしまった。(力技)
こういう時ってどうするべきなんだろう。方法が正しいのかどうか心配。

何とかmake installまで終わって、いざコンパイル。

net/bpf.h: そのようなファイルやディレクトリはありません


だって。bpf.hなんてない。どうしよう。とりあえず、今日は此処まで。

◎ カレンダー
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]