[PythonCE] building a 'simple' example

Luke Dunstan coder_infidel at hotmail.com
Tue Jul 4 16:51:49 CEST 2006


Hi,

I built your example simple.pyd and the only problem was that at first 
Python reported the error:

    Error: dynamic module does not define init function (initsimple)

The solution was to declare it properly by adding extern "C":

    extern "C" DL_EXPORT(void) initsimple()

This may not be related to your problem though. Anyway, after this change it 
worked fine. Please post more information about how you built the DLL (e.g. 
the project files), what SDK you used, and how you configured it to use the 
Python headers and libraries.

Luke

----- Original Message ----- 
From: "Smit, M.C." <M.C.Smit at tm.tue.nl>
To: "Luke Dunstan" <coder_infidel at hotmail.com>
Sent: Monday, July 03, 2006 9:26 PM
Subject: RE: [PythonCE] building a 'simple' example


Hi,

Thanks for saying with me, The "simple" example is at the bottom of the 
thread(and this mail). The .py program that calls it is:

import simple

but ceaches with:
ImportError: DLL load failed:The specified module could not be found.

I would feel very foolish, but if I need more than that, than I am totally 
unawhare of it. I must admit I am a bit out of my league here.

Thanks for your toughts.


>Hi,
>
>I think the only way I could help further is if you posted a small but
>complete example that demonstrates the problem.
>
>Luke
>
>----- Original Message ----- 
>From: "Smit, M.C." <M.C.Smit at tm.tue.nl>
>To: "Luke Dunstan" <coder_infidel at hotmail.com>; <pythonce at python.org>
>Sent: Monday, June 26, 2006 3:40 PM
>Subject: RE: [PythonCE] building a 'simple' example
>
>
>Hi
>
>The path is in sys.path. The DLL is next to the test programme that tries 
>to
>import it, it name is simple.dll, andthe error is raised on: import simple
>
>ImportError: DLL load failed:The specified module could not be found.
>
>I'm running an winXP computer
>and an Ipac PDA winMobile 2003
>
>thanks for your thoughts
>
>
>
>-----Original Message-----
>From: pythonce-bounces at python.org on behalf of Luke Dunstan
>Sent: Fri 6/23/2006 6:04 PM
>To: pythonce at python.org
>Cc:
>Subject: Re: [PythonCE] building a 'simple' example
>
>
>Hi,
>
>Where did you put the DLL? What is it called? What were the commands that
>failed?
>
>Luke
>
>----- Original Message ----- 
>From: "Smit, M.C." <M.C.Smit at tm.tue.nl>
>To: <pythonce at python.org>
>Sent: Friday, June 23, 2006 11:21 PM
>Subject: [PythonCE] building a 'simple' example
>

> Dear all
>
> While there have been some posts on this topic I don't believe the answer
> is in there jet.
>
> Eventually I want to write (with help of a colliegue whom is experienced
> in c) a module that can use a device. Some c libraries are available, and
> all I realy need is a function that returns an Int or String when called.
>
> I am trying to to build and run Listing 29-1 from the Python bible,
> but so far I have been unable to compile annything that will work.
> MS eVC is installed, and it compiles and links with no errors or warnings.
> but when I put the dll on the PDA, and run a test program all I get is an
>
> ImportError: DLL load failed:The specified module could not be found.
>
> it can clearly find the file couse it knows it is a dll. I'm hoplessly
> lost on what could be wrong, does annyone have any ideas.
>
> Cheers
>
>
> here is the code:
> // simple.cpp : Defines the entry point for the DLL application.
> //
>
> #include "Python.h"
>
> static PyObject *simple_add(PyObject *pSelf, PyObject *pArgs)
> {
> PyObject *pX, *pY;
>
> if (!PyArg_ParseTuple(pArgs, "OO", &pX, &pY))
> return NULL;
>
> return PyNumber_Add(pX, pY);
> }
>
> static char count_doc[] = "returns the number of arguments passed in";
>
> static PyObject *simple_count(PyObject *pSelf, PyObject *pArgs)
> {
> long count = PyTuple_Size(pArgs);
> return PyInt_FromLong(count);
> }
>
> static PyMethodDef simple_methods[] =
> {
> {"add", simple_add, METH_VARARGS, NULL},
> {"count", simple_count, METH_VARARGS, count_doc},
> {NULL, NULL}
> };
>
> DL_EXPORT(void) initsimple()
> {
> Py_InitModule("simple", simple_methods);
> }


More information about the PythonCE mailing list