2009年02月27日

クリスタルレポート10Jを使用したVB6アプリケーションのインストール失敗。

クリスタルレポート10Jを使ったVB6で作成のアプリケーションで。
インストーラーを使ってインストールしようとすると、クリスタルレポート関連のファイルの登録時に、cxlibw-1-6.dllが無いという内容のエラーが出て止まる。



元はこっち
http://www.agtech.co.jp/support/faq/legacy/crystal_reports_legacy/v10j/20050525001.html

以下、上記サイトより転載
--------------------------
(ここから)

Q:【開発】配布先のセットアップ中に「'C:\Program Files\Common Files\Crystal Decisions\2.5\bin\crqe.dll'の登録中にエラーが発生しました。」というエラーが発生しますが、何故でしょうか?

A:ご利用のアプリケーションが Report Designer Component(RDC)を使用している場合、このエラーが発生する事があります。
配布イメージを作成する際に使用した Craxdrt.dep 依存情報ファイルの [cxlibw-1-6.dll] セクションの記述に誤りがある事が原因です。
Craxdrt.dep の [cxlibw-1-6.dll] セクションの記述を、次のように修正します。
  誤:Dest=$(WinSysPath)\cxlibw-1-6.dll
  正:Dest=$(WinSysPath)
修正後の Craxdrt.dep を使用して、再度配布イメージを作成し直して下さい。

なお、Hot Fix やサービスパックを適用していない環境では、Craxdrt.dep 内容に [cxlibw-1-6.dll] セクションの記述がありません。
この場合、cxlibw-1-6.dll ファイルが不足している為にエラーが発生していると考えられますので、配布イメージに cxlibw-1-6.dll を含めてみてください。

(ここまで)
--------------------------
Craxdrt.depはクリレポのインストールしたところ?にあるようだ、配布のファイルにはない。

再度インストーラーを生成しなおししないといけないようだ。


なお。
Craxdrt.depはC:\Program Files\Common Files\Crystal Decisions\2.5\binにあったりする。
cxlibw-1-6.dllはC:\WINDOWS\system32に入っている(はず)


追記。
インストーラにcxlibw-1-6.dllを追記しても駄目、手動でsystem32ホルダにいれるのが吉でした。
posted by すら at 11:06| プログラミングなこと

2009年02月09日

TurboC++(C++Builder)における浮動小数点演算エラー

TurboC++であった、浮動小数点例外の発生原因。

ComboBoxのOnChangeで実行するFunctionが、
戻り値double指定だったのに、returnで何も返していなかった。
そのFuncitonを実行したあと、暫くして例外が発生する。
上手く動くときもあった。


戻り値に何も返して無くても、とりあえずコンパイルは通るので発見が遅れた(^^;
posted by すら at 16:32| プログラミングなこと

2009年01月08日

クォートする

’ はシングルクォーテーション
” はダブルクォーテーション

これらの文字で囲むことを「クォート」すると言うらしい。

なお、囲った結果は文字列リテラルと言うらしい。

※リテラル:定数
posted by すら at 15:46| プログラミングなこと

2008年12月13日

GoogleMap キーが他のサイトに割り当たっている旨のエラーについて

GoogleMap使用時にキーが他のサイトに割り当てられている旨のメッセージが出た場合。

落とし穴として。
普通にドメイン名でURL登録しているのに、アクセスはIPアドレス表記で行った、というパターン。
この場合、GoogleMap以外は正常に動くため、原因が解りにくい。
posted by すら at 11:50| プログラミングなこと

int64の数値を文字列化(VC/BCC)

i64の数値を文字列化する方法

__int64 i64val; //64ビット整数
char *buff; //char型の格納先
int radix; // 基数(_i64toa用)




その1)

sprintf( buff, "%I64lld", i64val );

d->x にすると16進出力



その2)

_i64toa( i64val, buff, radix )

radix:10 で10進、16ならHex



※セキュリティ対応版の_i64toa_sというのがあり、通常はそちらを使用するらしい。
posted by すら at 11:48| プログラミングなこと

int64へ即値を与える

VCな話。

longの即値にはLをつける。
int64の場合はllをつける(ロングロング?)
posted by すら at 11:48| プログラミングなこと

Rockwell Automation のRSLinxとのDDE通信

vbLinkAutimaticでリンク生成すると、たまに通信が欠落する。

対策として。
LinkMode = vbLinkManual
として。
PLCに書き出すときはLinkPoke
PLCから読み込むときはLinkRequest
を使用し、定期的に(たとえばタイマーで)受け渡しをポーリングで実装する。

また、RSLinxでDDE使用時は、設定でPLCを選択する部分に注意、バックプレーンの中のPLC相手だとDDE接続文字列を生成出来ない。
posted by すら at 11:48| プログラミングなこと