954,525 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Calling c function from python

Hi all,

I am a newbie to python and am not sure,what i am doing is correct or not ,i wanna call c function from within python.
i have my python program as:

import DLL

if __name__ == "__main__":
    for i in range(1,6):
         DLL.RECEIVE_FROM_IL_S(10,50)

here RECEIVE_FROM_IL_S() is c function which i wanna call.And my c
function would be,

#include <stdio.h>
#include <windows.h>
#include <stdio.h>
#ifdef _DEBUG
  #undef _DEBUG
  #include "python.h"
  #define _DEBUG
#else
  #include "python.h"
#endif

PyObject* _wrap_RECEIVE_FROM_IL_S(PyObject *self, PyObject *args)
{
    FILE* fp;
    PyObject* _resultobj;
    int i,j;

    if( !(PyArg_ParseTuple(args, "i",&i,&j)))
    {
      return NULL;
	   
    }

/*Here if i want to call another c function say SEND_TO_IL(),what shud i be including*/

	fp= fopen('fileName.txt', "w");
	fprintf(fp, "i=%d   j=%d" , i,j);
             fclose(fp);

     _resultobj = Py_None;
    return _resultobj;  

}

static PyMethodDef MY_DLL_methods[] = {
      { "RECEIVE_FROM_IL_S", _wrap_RECEIVE_FROM_IL_S, METH_VARARGS },
      { "FUNC_CALL" , function,METH_VARARGS },
      { NULL , NULL}
      };

__declspec(dllexport) void __cdecl initDLL(void)
  {
    Py_InitModule("DLL",MY_DLL_methods);
  }

Also, if i don't want to pass any args to RECEIVE_FROM_IL_S from python what shud i do.

Regards,
john

Edit: Code tags added by vegaseat

john_27
Newbie Poster
1 post since Oct 2005
Reputation Points: 10
Solved Threads: 0
 

Are you following an example from a book?

Normally I would use the ctypes module from: http://starship.python.net/crew/theller/ctypes/

vegaseat
DaniWeb's Hypocrite
Moderator
5,989 posts since Oct 2004
Reputation Points: 1,345
Solved Threads: 1,417
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You