日本PHPユーザ会 掲示板

日本PHPユーザ会運営の掲示板です。※ただいまテスト運用中です。

日本PHPユーザ会 掲示板 » PHP 5 » PHPからDLL(COM)の呼出方法について

PHPからDLL(COM)の呼出方法について

ページ: 1

投稿者 投稿
会員
登録者: 4 2008
返信数: 2
お世話になります。

C++で作成したDLLのCOMをPHPから実行したいのですが、
PHPからの呼び出し方法がよくわかりません。

以下の内容についてご教授願います。

環境:
WindowsXP、PHP5.2.5+IIS、Visual studo 2005

DLL作成手順:
プロジェクト名:Test1
Visual studoのATLプロジェクトウィザードで
DLL、COM+サポート、レジストを指定。

生成されたTest1.cppに以下のコードのみを記述
Test1.cpp :

CTest1App::CTest1App() 
{
// ↓ここのみ記述。
using namespace std;
ofstream fout ("c:\\temp\\d.log");
fout << "[debug]" << endl ;
// ↑ここのみ記述。
}

呼び出し側のPHP:
Test1.php :
<?php 
$mycom = new COM("Test1.Test");
?>


ビルド後、
regsvr32 /s Test1.dll でレジストリ登録して、
コマンドラインから
> php test1.php
を実行すると以下のようなエラーとなります。
当然ファイルは出力されていません。

PHP Fatal error: Uncaught exception 'com_exception' with message 'Failed to create COM object `Test1.Test': 構文が無効です' in C:\Inetpub\wwwroot\php\test1.php:2
Stack trace:
#0 C:\Inetpub\wwwroot\php\test1.php(2): com->com('Test1.Test')
#1 {main}
thrown in C:\Inetpub\wwwroot\php\test1.php on line 2

phpのnew COM("xxxx.zzzz");の部分について、
DLLを自前で作成した場合、
COMのインスタンス化するときの引数に何を指定して良いのかがわかりません。

C++側のクラスIDを指定しても同様のエラーとなり
どこに設定されている(設定する)値を指定すれば良いのでしょうか?

以上、よろしくお願いします。
会員
登録者: 4 2008
返信数: 2
自己解決しました。
DLLの生成方法に誤りがあり、上記のエラーとなっていたようです。

お騒がせしました。

ページ: 1

日本PHPユーザ会 掲示板 » PHP 5 » PHPからDLL(COM)の呼出方法について

日本PHPユーザ会 掲示板 は UseBB 1 フォーラムソフトウェア を使用しています