C/C++实战004:python调用c++的dll文件

2025-05-23 17:05:29

1、之前添加一个头文件进行宏定义,这里我新增了一个fanuc.h头文件#include <string>using namespace std;//定义宏#ifdef DL1_API垆杪屑丝#else#define DL1_API extern "C" _declspec(dllimport)#endifDL1_API string transmission(string ip,string path);

C/C++实战004:python调用c++的dll文件

3、接着报错:指定的 C 链接,但返回了与 C 不兼容:警告 1 warning C4190: “transmission”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<_Elem,_Traits,_Alloc>” e:\projects\fanucnc\fanucnc\fanuc.h 9 1 FanucNC这次没报错,也没有返回任何信息,头疼........

C/C++实战004:python调用c++的dll文件

5、 前面提示 :警告 1 warning C4190: “fanuc”有指定的 C 链接,但返回了与 C 不兼容的 ,但改成char*就可以了,说明c返回值 不兼容string,所以在传入值中用string应该也有问题char* fanuc(char* ipaddr,char* pathName);{ //内容省略****}

C/C++实战004:python调用c++的dll文件

7、 这里我们把python也修改一下,将字符串进行转义,换成字节类型,这样两边就对接好了,再次执行我们就可以获取到当前函数的返回值了

C/C++实战004:python调用c++的dll文件

8、现在还有个问题需要解决的就是,int类型返回正常,但是用char*作为返回类型的话收到的是地址符,并不是字符串,这样python这边不无法分辨接受到的信息了,求大神指点一二了。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢