On 2012-10-22 11:55, Paul Volkov wrote:
I am trying to compile an extension module with C++ Builder 6 for Python 3.3.
I converted python33.lib using coff2omf.exe and added this library
into my project.
I wonder why I get this error message while building:

[Linker Error] Unresolved external '_PyModule_Create2TraceRefs'
referenced from 'D:\WORK\FROMAGE\OUT\ROSE_UNIT.OBJ'

My source file:

//---------------------------------------------------------------------------

#include <Python.h>
#include <windows.h>
#pragma argsused

It's a Python module with its own initialiser, so you don't need this:

BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fwdreason, LPVOID lpvReserved)
{
         return 1;
}

You don't need to export this function because it's listed in the
module's function table:

static PyObject* __declspec(dllexport) testik(PyObject* self, PyObject* args)
{

Returning NULL says that an exception was raised. You should set the
exception.

return NULL;
}

static PyMethodDef FundRoseMethods[] = {
{"testik", testik, METH_VARARGS, "perform a test"},
{NULL, NULL, 0, NULL}
};

static struct PyModuleDef FundRoseModule = {
PyModuleDef_HEAD_INIT,
"FundRose",
NULL,
-1,
FundRoseMethods
};

PyMODINIT_FUNC
PyInit_FundRose(void)
{
return PyModule_Create(&FundRoseModule);
}

//---------------------------------------------------------------------------

By the way, the recommendation is for module names to be lowercase with
underscores, so "fund_rose" instead of "FundRose".

Try this code:

#include <Python.h>
#include <windows.h>
#pragma argsused

static PyObject* testik(PyObject* self, PyObject* args)
{
    PyErr_SetString(PyExc_RuntimeError, "testik exception");
    return NULL;
}

static PyMethodDef FundRoseMethods[] = {
    {"testik", testik, METH_VARARGS, "perform a test"},
    {NULL, NULL, 0, NULL}
};

static struct PyModuleDef FundRoseModule = {
    PyModuleDef_HEAD_INIT,
    "FundRose",
    NULL,
    -1,
    FundRoseMethods
};

PyMODINIT_FUNC PyInit_FundRose(void) {
    return PyModule_Create(&FundRoseModule);
}

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to