gpt4 book ai didi

php - 在 win32 c 扩展中使用 php_strtolower

转载 作者:行者123 更新时间:2023-11-30 16:59:57 29 4
gpt4 key购买 nike

我正在尝试为win32平台构建一个php扩展,在php源代码中我找到了一个我想使用的函数php_strtolower(char *, unsigned int length),但是当我尝试调用它时, Visual Studio 提示缺少符号。

Creating library C:\projects\php_mt4_ext\Debug\php_mt4_ext_debug.lib and object C:\projects\php_mt4_ext\Debug\php_mt4_ext_debug.exp Manager.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) char * __cdecl php_strtolower(char *,unsigned int)" (__imp_?php_strtolower@@YAPADPADI@Z) referenced in function "struct _zval_struct * __cdecl GET_MANAGER_ERROR(struct manager_object *,void * * *,class std::basic_string,class std::allocator >,int)" (?GET_MANAGER_ERROR@@YAPAU_zval_struct@@PAUmanager_object@@PAPAPAXV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@H@Z) C:\projects\php_mt4_ext\Debug\php_mt4_ext_debug.dll : fatal error LNK1120: 1 unresolved externals

我正在做的代码非常简单,如下

php_printf(php_strtolower("hello",strlen("hello")));

我正在导入 php5ts.lib,所有其他 php 函数似乎都没有任何问题,但这些函数却有问题。

有人知道我是否需要采取任何特殊技巧才能使用这些功能吗?

最佳答案

问题是我包含了并且我的项目是c++代码库。

例如,我需要将 php header 包装在 extern“C”中

extern "C" {    
#include <php.h>
#include <info.h>
#include<zend_exceptions.h>
#include <zend_interfaces.h>
#include <ext/standard/php_string.h>
}

然后编译没有任何问题

关于php - 在 win32 c 扩展中使用 php_strtolower,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37895632/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com