トップ(最新)

nDiki : Visual C++

スポンサード リンク

Related term

2001年6月7日 (木)

13:15 Visual C++ + 日本語 EUC このエントリーを含むはてなブックマーク

スポンサード リンク

gcc でコンパイルできるコードを Visual C++ でコンパイルすると namespace 辺りでエラー。 うーんうーん。 半時間以上たって、判明したのはソース中の日本語 EUCによる問題。 Linux で書いていたコードをとりあえず持ってきて make していたので...

泣き。

■ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。

Google Buzz はよろしければ Naney の Google プロフィールからどうぞ。


14:30 GNU Autotools + Visual C++ このエントリーを含むはてなブックマーク

投げ。とりあえず nmake 用 Makefile を書いてお茶をにごす。


[ 6月7日全て ]

2001年9月18日 (火)

18:20 Visual C++ IDE のメニュー このエントリーを含むはてなブックマーク

ビルド」メニューで、「ビルド」と「リビルド」が並んでいる。 「ビルド」を選択するつもりで「リビルド」を選択してしまうと……コーヒータイムだ。

とはいえ、時間がもったいないので「リビルド」をメニューから削除した。


[ 9月18日全て ]

2001年9月21日 (金)

14:45 Crypto++ このエントリーを含むはてなブックマーク

以前チェックしていたフリーの C++ 暗号化クラスライブラリ。 gzip や zlib 圧縮もサポート。 MSVC 6.0 でも OK。 ちょっと、使って見ようかなと。

使い方は、Read denis bider の User Guide がよさそげ。


[ 9月21日全て ]

2004年2月19日 (木)

[ Perl ] PDL::PP で C extension を書く このエントリーを含むはてなブックマーク

PDLを使ったPerl数値処理プログラムによりインタラクティブ性が求められるようになってきたので、一部をCで書いて高速化する事を検討。 問題は Linux でも Windows + ActivePerl でもすんなり動くかどうか。

@ .pd ファイルを書く

とりあず PDL::PP のサンプルから sumit 関数あたりを MathEx.pd に書いておく。

@ Makefile.PLを修正する

Foo::Bar パッケージの中の Foo::Bar::Math の一部を Foo::Bar::MathEx に移して、C extension 化したい。 ということで lib/Foo/Bar/MathEx.pd として、Makefile.PL の各種設定をしてみる。

がどうもうまくいかない。 PDL::PPMakefile.PLサポートは、Makefile.PL と同じ位置に .pd がある事を想定しているようなので、いろいろと小細工をしなければならない。 一方 PerlXS は Foo::Bar のベース名から Bar.so を作る前提になっているようで、これまたパッケージの中の一部のモジュールをどうもXS化しにくい。

@ 子Makefile.PLを作る

Perl の ext/SDBM_File を真似て、子 Makefile.PL を使ってみることにした。

 Foo-Bar-x.xx
   |
   +- Makefile.PL
   |
   +- lib
   |    |
   |    +- Foo
   |         |
   |         +- Bar.pm
   |         |
   |         +- Bar
   |              |
   |              +- Math.pm
   |              |
   |              +- MathNoEx.pm
   |              |
   |              ...
   |
   |
   +- blib/...
   |
   +- MathEx
   |    |
   |    +- Makefile.PL
   |    |
   |    +- MathEx.pd
   ...

パッケージディレクトリの下に MathEx ディレクトリを作り、そこに Makefile.PL と MathEx.pd を置く。 Makefile.PL は MathEx.pd 専用になるので、PDL::PP の標準的なものでOKになる。

全体のパッケージング・PPM化・インストール等が面倒にならないかと心配したが、Foo-Bar パッケージ化で perl Makefile.PL、make xxx を実行すれば子Makefile.PLまできちんと面倒をみてくれる。 MathEx 以下でビルドしたものもパッケージの blib に一緒に入れてくれるし(=一緒にインストールできる・PPM化できる)。 逆に make dist の際には子Makefileの方は余計なとりまとめはしないで、親Makefileが一括して tar.gz に入れてくれる。 これはよい。 MathEx.pd もきちんと Foo/Bar/MathEx.so になった。

@ XSが使えない環境との両対応

XSが使えない環境のために、PerlとPPの両方で関数を書いておく。 XSが使えれば MathEx を、使えなければ MathNoEx.pm を使うように。 表向きのAPIは Foo::Bar::Math とし、ここで AUTOLOAD を使ってどちらか一方を呼び出すようにする。 間接呼び出しにして遅くなるのはいやなので、シンボルテーブルを直接設定する。

 use vars qw($IMPLEMENT_CLASS $AUTOLOAD);
 BEGIN {
   $IMPLEMENT_CLASS = 'Foo::Bar::MathEx';

   eval "use $IMPLEMENT_CLASS";
   if ($@) {
     warn "Can't load $IMPLEMENT_CLASS: $@";
     $IMPLEMENT_CLASS = 'Foo::Bar::MathNoEx';
     eval "use $IMPLEMENT_CLASS";
     die $@ if $@;
   }
 }

 sub AUTOLOAD {
   my $name = $AUTOLOAD;
   $name =~ s/.*://;
   my $implement = $IMPLEMENT_CLASS . '::' .$name;
   no strict "refs";
   *{$name} = \&{$implement}; # ここでシンボルテーブル設定
   return &{$implement}(@_);
 }

最初は、AUTOLOAD の最後の行で die したら、trap してエラーメッセージ中のパッケージ名(Foo::Bar::MathEx や Foo::Bar::MathNoEx)を呼び出された Foo::Bar::Math に置換して die し直すようにしようかと思ったが面倒なのでやめ。

@ ActivePerl 5.6 + Visual C++ 6

使っているWindows BOX には Visual C++ 6 が入っているので、XSも問題なくビルドでき PDL extension もうまく動いた。

 PPM化までここで済ませば、他のPCにも持っていけるはず。

@ さて

これでバシバシPPで書けるわけだが、PPがこれまた難解で最初は苦労しそう。


[ 2月19日全て ]

2004年8月27日 (金)

Wx::ActiveXビルド このエントリーを含むはてなブックマーク

Wx::ActiveXPerl v5.6.1 用バイナリ(PPM パッケージ)が配布されていないのでビルドする。 最初はPPM パッケージ化された wxPerl (Wx-0.19-wxmsw2.4.2-win32-u-5.6.1.zip) と wxWidgets 2.4.2 で作成しようと思ったが、うまくいかないので全部ビルドすることに。

@ wxWidgetsインストール

wxMSW-2.4.2-setup.zip を C:\usr\local\wxWindows-2.4.2 へ。

@ wxPerl 0.20

ドキュメントの通り、wxWidgetsビルド後、モジュールを作成。 コンパイルには Visual C++ 6 を使用。

wxWidgetsビルド

 set WXWIN=C:\usr\local\wxWindows-2.4.2
 set WXDIR=C:\usr\local\wxWindows-2.4.2
 cd %WXDIR%\src\msw
 nmake -f makefile.vc FINAL=1 dll
 cd %WXDIR%\contrib\src\stc
 nmake -f makefile.vc FINAL=1 WXUSINGDLL=1
 cd %WXDIR%\contrib\src\xrc
 nmake -f makefile.vc FINAL=1 WXUSINGDLL=1

Wx-0.20.tar.gz を展開したディレクトリに移動し(WXWIN, WXDIR は前記と同じように設定したまま)、

  perl Makefile.PL
  nmake
  nmake test
  make_ppm

PPM パッケージ化まで。

@ Wx::ActiveX 0.05

先に wxPerlインストールしておいてから、

 set WXWIN=C:\usr\local\wxWindows-2.4.2
 set WXDIR=C:\usr\local\wxWindows-2.4.2
  perl Makefile.PL
  nmake
  nmake test
  make_ppm

PPM パッケージ化。インストール

demo ディレクトリにあるサンプルで、IE、Flash Player、Acrobat、Windows Media Player を貼りつけられていることを確認。


[ 8月27日全て ]

2008年9月9日 (火)

今日のさえずり - 背後に立たれていても気がつかないという恐れ このエントリーを含むはてなブックマーク

@ 2008年09月08日

  • 09:19 NEW MEGALOPOLIS で出勤中。空いている電車で良かった。[mb]
  • 09:42 アイス カフェモカ トール パーソナル。[mb]
  • 10:39 c:\Documents and Settings\naney\Application Data\Ripplex を削除。
  • 11:37 Google ドキュメント、書き込み禁止設定できるようにならないかな。freeze したドキュメントは自分でも誤って編集したりしないようにしたいのだが。
  • 11:38 @zakwa Windows XP SP3 がきてるんじゃない?
  • 12:17 mixi のエコー利用停止した。停止するのにアンケート必須って何考えてるん?
  • 12:49 @odeko_O mixi エコー、見なくてもいい人のが見えてしまうのがダメでした (そんな人マイミクシィから外せばというのも無くはないのですが)。
  • 13:28 Visual C# 2008 Express Edition をインストールするつもりが間違えて、Visual C++ 2008 Express Edition のインストールを始めていた。あわててキャンセル。
  • 18:12 Visual C# 2008 Express Edition 登録しようとしたら Windows Live ID へのサインインを求められた。(多分)2001年頃の Microsoft Passport のパスワード入れてみたけどはねられた。
  • 18:16 と思ったら、メモの下に「new password」が。もうパスワード再設定始めてるけど。
  • 18:54 目の前にあるエアコンのスイッチが切られていることを、Twitter のログでようやく気がつくオレって……。
  • 20:06 今日はノート PC を会社に置いてきた。人間的な生活をおくろう。[mb]
  • 21:04 ギリギリ雨降る前に家に帰って洗濯物取り込めた。ラッキー。[mb]
  • 21:18 ザーッときた。朝の天気予報では「にわか雨は一部の地域のみ」と言っていたが、ここはその一部なのか。結局降られる時は降られるから「一部」とかって予報は個人には意味ないな。[mb]
  • 21:43 ミニ万年筆「WHITE」付録ラピタもう1冊買ってきた。[mb]
  • 21:47 ちなみに箱は思いっきり潰されてた。やるな LABI。[mb]

@ 2008年09月09日

  • 10:29 プロシージャ エントリ ポイント GetTokenYnformation がダイナミック リンク ライブラリ ADVAPI32.dll から見つかりませんでした。で、エクスプローラが起動しない。
  • 11:59 Redmine の導入検討を始めたか。いいんじゃない?
  • 12:40 評判の良い耳鼻科検索中。
  • 14:03 Redmine のアカウント作ってもらった。使い方はまだ知らない。
  • 15:11 オフィスで耳栓すると随分ノイズカットできる。他者が気にならなくなる。そのかわりいつのまにか背後に立たれていても気がつかないという恐れがあるな。
  • 15:18 @shom5w やっぱり耳栓している時に突然はなしかけられるとビビりますよねー。
  • 17:12 「充実野菜 低カロリー」不思議な味だった。
  • 21:28 ラピタ、12月発売の2009年1月号で休刊か。
  • 23:09 マイミクシィがニックネーム変えたので、足あとみて最初誰かと思った。
  • 23:15 TinyURL.com のプレビュー設定が外れていたのを思い出して、再度設定しておいた。

[ 9月9日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.029439s / load averages: 0.30, 0.10, 0.07
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)