English 中文(简体)
• 如何为SWIG设计我的接口?
原标题:How to design my interface for SWIG?
  • 时间:2011-03-31 14:47:14
  •  标签:
  • php
  • c
  • swig

I m using SWIG to make my C code work on php...But I don t figure out how to write a good interface based on my C code to pass to SWIG.Can somebody help me? The link to see what my C code looks like is this one : http://www.pastie.org/1739618 Thanks a lot for your help

问题回答

You should move your function prototypes to a separate header file. SWIG can process that and generate the required stuff for you. You can follow the SWIG tutorial and specifically pay attention to the section SWIG for the truly lazy which shows how you can avoid having to maintain a separate SWIG interface file.

参考SWIG和PHP网页,你应当能够做事。 注:SWIG不支持PHP4。

也许你可以首先尝试像以下内容一样的内容,并将之作为对<代码>swig的投入。 指挥:

/* optim_wizard_5.h */

#ifdef SWIG
%module optim_wizard_5
%{
#include "optim_wizard_5.h"
%}
#endif

/* Function prototypes to define later */
void *getCpc(void *ptr);
float getCpc_max(float *arg);
char *do_web_request(char *url);
size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp);
float request_cpc();

在使用SWIG时,往往不使用多种语言:

  1. Don t throw exceptions outside of the interface you want to expose to SWIG
  2. Don t return or require as parameters, raw C-arrays in the interface you expose. (Wrap them in structures preferably)
  3. Write SWIG interface files that include the header files you want to expose in your interface to PHP. Don t embed SWIG #ifdefs in the C code itself...




相关问题
Fastest method for running a binary search on a file in C?

For example, let s say I want to find a particular word or number in a file. The contents are in sorted order (obviously). Since I want to run a binary search on the file, it seems like a real waste ...

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

Tips for debugging a made-for-linux application on windows?

I m trying to find the source of a bug I have found in an open-source application. I have managed to get a build up and running on my Windows machine, but I m having trouble finding the spot in the ...

Trying to split by two delimiters and it doesn t work - C

I wrote below code to readin line by line from stdin ex. city=Boston;city=New York;city=Chicago and then split each line by ; delimiter and print each record. Then in yet another loop I try to ...

Good, free, easy-to-use C graphics libraries? [closed]

I was wondering if there were any good free graphics libraries for C that are easy to use? It s for plotting 2d and 3d graphs and then saving to a file. It s on a Linux system and there s no gnuplot ...

Encoding, decoding an integer to a char array

Please note that this is not homework and i did search before starting this new thread. I got Store an int in a char array? I was looking for an answer but didn t get any satisfactory answer in the ...

热门标签