Help creating extension for C function
Java and Swing
codecraig at gmail.com
Tue Oct 11 14:42:03 EDT 2005
Fredrik,
I now have this.
myapp.c
--------
#include <string.h>
#include <stdlib.h>
#include "Python.h"
int doStuff(const char *input, const char *d) { ... }
static PyObject *wrap_doStuff(PyObject *self, PyObject *args) {
// get the arguments from Python
int result;
char *input = 0;
char *d = 0;
int ok = PyArg_ParseTuple(args, "ss", &input, &d);
if (!ok) return 0;
// make the function call
result = doStfuff(input, d);
// return the result
return PyBuildValue("i", result);
}
static PyMethodDef functions[] =
{
{"PyDoStuff", wrap_doStuff, METH_VARARGS, "some documentation"},
{NULL, NULL}
};
extern PyMODINIT_FUNC initDLLTester(void)
{
Py_InitModule4(
"DLLTester", functions, "my doStfuff function", NULL,
PYTHON_API_VERSION
);
}
...when I try to compile in Visual C++ 6, I get
Linking...
Creating library Release/DLLTester.lib and object
Release/DLLTester.exp
test.obj : error LNK2001: unresolved external symbol _PyBuildValue
Release/DLLTester.dll : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.
Any ideas what's happening here?
DLLTester.dll - 2 error(s), 0 warning(s)
Fredrik Lundh wrote:
> Java and Swing wrote:
>
> > So is "module.c" a new C file or do I add it to my existing, myapp.c?
>
> it's a complete module. if you want it to do something other than printing
> the arguments, replace the "do stuff" section with your own code. if you
> want to call it something else, rename it. if you want to change the API,
> change it. it's not that large; you should be able to figure out what it does
> and how it does it in no time at all.
>
> </F>
More information about the Python-list
mailing list