1

我为以下功能创建了 .so 文件:

主.cpp:

#include<stdio.h>
#include "test.h"
int main()
{
int a=hello();
printf("%d",a);
return 0;
}

测试.h

int test()
{
 int a=5,b=10,c;
 printf("Hi");
 c=a+b;
 return c;
}

现在我为上述程序创建共享库文件 main.so 并想从 php 脚本调用 hell() 函数。

p1.php

<?php
// Call to test function in main.cpp
>

我在网上看到了各种教程,但没有明确的解释。有人可以提供一些教程的链接或帮助我解决这个问题吗?

4

1 回答 1

2

Sara Goleman 的书非常出色,全面地介绍了如何开发 php 扩展(包括您的主题)。

这是一篇介绍性文章。

http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/

我读过她的书,它完全涵盖了这个问题。

http://www.amazon.com/dp/067232704X

如果这不是一个快速简单的答案,我很抱歉。然而,PHP API 并不完全直截了当。如果没有关于每个组件的更多背景信息,它就没有多大意义。一旦我有了它,我就能够清楚地看到 PHP API 的开发。

或者,如果您正在寻找不同的方法,则可能需要使用 RabbitMQ 或其他一些消息队列服务来调用 c++ 应用程序并从(可选)持久性 c++ 进程来回发送消息。

以下是一些我发现有用的进一步链接:

http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/

http://talks.somabo.de/200903_montreal_php_extension_writing.pdf

http://simonholywell.com/post/2010/09/15-excellent-resources-for-php-extension-development.html

http://blog.golemon.com/2006/06/what-heck-is-tsrmlscc-anyway.html

http://www.php.net/manual/en/internals2.php

于 2013-06-28T03:41:04.257 回答