64bitでタイプライブラリを読み込むには?

解決


kko  2014-03-30 22:48:49  No: 46181

64ビット Windows版タイプライブラリの読み込み方法を教えてください。

今まで、32bit環境でVisual Studio 2010からタイプライブラリを出力し、それをDelphi 2010でタイプライブラリのインポートから読み込み、フォームに張り付けたりなどして利用していました。
しかし、最近OSを64ビットにし、DelphiもXE2に変更して、ターゲットプラットフォームをWin64に変えたところ、Win32のタイプライブラリを読み込めなくなりました。
これについては、Visual Studio 2010で作成したタイプライブラリのターゲットプラットフォームが64bitに対応していないためだろうと思い、64bitに変えて改めて出力しましたが、Delphi XE2でタイプライブラリのインポートを行うと読み込みエラーとして表示されるようになってしまいました。

本件について、64bitのタイプライブラリを読み込むには、何か特別な方法があるのでしょうか?ご教授のほど、よろしくお願いします。
また、Win32で作成したタイプライブラリを64bit対応にも読み込む方法などもあればご教授のほど、よろしくお願いいたします。

なお、開発環境はDelphi XE2、タイプライブラリはVisual studio 2010 Professionalで出力しています。
Visual studio 2010 で出力するタイプライブラリのソースは下記の方のソースを参考にしています。

http://www5.plala.or.jp/atata/download/axcontrol.net.lzh


Mr.XRAY  2014-03-31 00:07:46  No: 46182

この掲示板には「ご教授」できる方はほとんどレスしないと思いますよ.
「ご教授」と書いてあるだけで引いてしまう方もいるようです.

どのような手順で作業したか分かりませんので,憶測ですが, 
(できない,ということは十分に伝わってきています)

>ソースは下記の方のソースを参考にしています。

と書いてあるので,おそらく idl ではなく tlb ファイルを作成したのではないかと推測します.
もしかしたら,以下の記事が参考にならないでしょうか.

[64 ビット タイプ ライブラリの生成とインポート]
http://docwiki.embarcadero.com/RADStudio/XE5/ja/Windows_%E5%90%91%E3%81%91%E3%81%AE_64_%E3%83%93%E3%83%83%E3%83%88_%E3%82%AF%E3%83%AD%E3%82%B9%E3%83%97%E3%83%A9%E3%83%83%E3%83%88%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%B1%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E9%96%8B%E7%99%BA#64_.E3.83.93.E3.83.83.E3.83.88_.E3.82.BF.E3.82.A4.E3.83.97_.E3.83.A9.E3.82.A4.E3.83.96.E3.83.A9.E3.83.AA.E3.81.AE.E7.94.9F.E6.88.90.E3.81.A8.E3.82.A4.E3.83.B3.E3.83.9D.E3.83.BC.E3.83.88


kko  2014-03-31 01:29:17  No: 46183

迅速に回答していただき、誠にありがとうございます。

>>おそらく idl ではなく tlb ファイルを作成したのではないかと推測します.
はい、その通りです。COM相互運用機能を利用してdllファイルとtlbファイルを作成していました。

そして、[64 ビット タイプ ライブラリの生成とインポート]の記事を提供していただき、ありがとうございます。

早速、参考に進めさせていただいてますが、TLIBIMP.EXEの使い方で困っています。
RAD STUDIOのコマンドプロンプトから実行させることが可能と考えていますが、TLBファイルの出力方法がわかりません。

たびたびのご質問で誠に申し訳ありませんが、TLIBIMP.EXEの使い方を教えていただけませんでしょうか。


DEKO  2014-03-31 02:30:57  No: 46184

> TLIBIMP.EXEの使い方
Mr.XRAY さんが示されたリンク先の TLIBIMP.EXE はハイパーリンクになっていますが、
そこはご覧になりましたか?

[TLIBIMP.EXE]
http://docwiki.embarcadero.com/RADStudio/ja/TLIBIMP.EXE


Mr.XRAY  2014-03-31 02:39:20  No: 46185

>Mr.XRAY さんが示されたリンク先の TLIBIMP.EXE はハイパーリンクになっていますが、
>そこはご覧になりましたか?

あっ,書こうと思っていたのに (笑)
そこにオプション等も書いてあります.
具体的な例があります.参考にしてください.
でも,読まないと意味ないですが (これも笑)

[TLIBIMP.EXE を使用したタイプライブラリの取り込み]
http://mrxray.on.coocan.jp/Delphi/CompoInstall/TypeLibraryDD.htm#01


kko  2014-03-31 04:19:18  No: 46186

お世話になっております。

DEKOさん、Mr.XRAY さん、タイプライブラリの取り込み方法について、紹介していただき、誠にありがとうございます。
おかげさまで、TLIBIMP.EXEの使用方法はわかったので、Delphiにインポートするファイルを出力し、取り込んでみました。
しかし、出力されたタイプライブラリが64bit プラットフォーム対応になっておりませんでした。

32bitのタイプライブラリを64bitでエクスポートするのは不可能なのでしょうか?

もし、ほかに方法があれば、別途、紹介のほど、よろしくお願いいたします。


Mr.XRAY  2014-03-31 04:37:40  No: 46187

>出力されたタイプライブラリが64bit プラットフォーム対応になっておりませんでした。

対応になっていないというのは,どのような手順で作業して,なにをもって判断したのでしょうか ?

>ほかに方法があれば、別途、紹介のほど、よろしくお願いいたします。

無理です.最初レスでも触れましたか,
残念ながら,私の頭脳では,具体的な状況が理解できません.


Mr.XRAY  2014-03-31 04:39:16  No: 46188

>残念ながら,私の頭脳では,具体的な状況が理解できません.

他の方のレスに期待してくださいませ.スミマセン.


kko  2014-03-31 05:27:33  No: 46189

>対応になっていないというのは,どのような手順で作業して,なにをもって判断したのでしょうか ?
Mr.XRAY さん、詳細を書かないままでいて、大変申し訳ございませんでした。

私が行った作業は以下の通りで行いました。
①Visual studio 2010で出力したDLLを64bit版のTLIBIMPがある場所に保存
②TLIBIMPで、Accessibility_TLB、mscorlib_TLB、System_TLB、System_Windows_Forms_TLB、(上記で出力したDLL)_TLBを出力
③Delphi XE2のパッケージの新規インストールで上記ファイルを読み込み、.bplファイルを作成

上記作業後にbplを読み込みますが、コンポーネントはWin32 プラットフォームしか対応していませんでした。

もし、やり方に間違いがあれば、ご指摘のほど、よろしくお願いいたします。


Mr.XRAY  2014-03-31 09:48:22  No: 46190

何とかしたいという気持ちは十分に理解できます.

Mr.XRAY 2014/03/30(日) 19:37:40のレスの繰り返しになりますが,

>コンポーネントはWin32 プラットフォームしか対応していませんでした。

どうして,この結論に至ったのでしょうか ?
Dephi の IDE が話かけたのでしょうか ?

問題を明らかにするには,誰が(これは明確ですが),何時,どこで,何を,どのように,に注意して,
自分が操作したことを箇条書きにしてみることです.
そして,それを読んだ人が,同じことを操作できるように書くことですね.
STAP 細胞ではありませんが,他の人がその操作が再現できるようにしてみることです.
再現できなければ,検証のしようがありません.

>コンポーネントはWin32 プラットフォームしか対応していませんでした。

というのは,「操作の内容」でも「操作の結果」でもありません.

(1) [ファイル] --> [開く] で .dpr ファイルを開く
(2) [F12] を押下して,コードエディタを表示
(3) しかし,コードエディタが表示されない

以上の結果,何々と思いました,とかですね.

○囲み文字は使用しない方が無難です.
https://www.petitmonte.com/bbs/answers?question_id=8298
のように文字化けすることがあります.


Mr.XRAY  2014-04-02 00:20:46  No: 46191

TLIBIMP.EXE というプログラムで,タイプライブラリの取り込みを行うと,ユニットファイルができます.
ユニットファイルというのは,拡張子が .pas のファイルのことです.
ここから先は,タイプライブラリの取り込み方法とは直接関係なく,作成したユニットの使用方法となります.

単にこのユニットを uses に追加して利用する場合は,それ以後の操作は必要ないことになります.
コンポーネントしてインストールする場合は,パッケージに登録します.

質問された方の文章からは,どのような操作をしたのかが不明ですので,これ以上のレスはできませんが,
以下に,少しくどいですが,思いついたことを書いておきました.

[タイプライブラリの取り込み]
http://ht-deko.minim.ne.jp/delphiforum/?vasthtmlaction=viewtopic&t=1400


kko  2014-04-03 16:58:47  No: 46192

お世話になっております。

返信が遅くなってしまい、誠に申し訳ございませんでした。

Mr.XRAY さん、本件について詳細な説明を行っていただき、誠にありがとうございます。
本件は上記[タイプライブラリの取り込み]にて、記載されている(8)の内容が問題でした。
諸事情にて、今日中に改善内容を確認することは出来ませんが、近日中に改善した報告を、
改めて記載させていただきます。

取り急ぎとなりますが、本件への回答に御礼申し上げます。
ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加