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を指定しても同様のエラーとなり
どこに設定されている(設定する)値を指定すれば良いのでしょうか?
以上、よろしくお願いします。