Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #51180

Re: how: embed + extend to control my running app?

Path csiph.com!newsfeed.hal-mli.net!feeder3.hal-mli.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail
Return-Path <python-python-list@m.gmane.org>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.000
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'debug': 0.07; 'found,': 0.07; 'subject: + ': 0.07; 'assuming': 0.09; 'correct,': 0.09; 'debugger': 0.09; 'linker': 0.09; 'okay': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'skip:/ 10': 0.09; 'windows': 0.15; '"additional': 0.16; '(note:': 0.16; '.py': 0.16; 'cuz': 0.16; 'dll,': 0.16; 'hacked': 0.16; 'libraries"': 0.16; "microsoft's": 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'subject:embed': 0.16; 'symbols': 0.16; 'toolset': 0.16; 'ignore': 0.16; 'wrote:': 0.18; '(where': 0.19; 'file,': 0.19; 'resolved': 0.19; 'things.': 0.19; 'import': 0.22; 'header:User- Agent:1': 0.23; 'dll': 0.24; 'rid': 0.24; 'specify': 0.24; 'tells': 0.24; 'versions': 0.24; "i've": 0.25; 'skip:_ 20': 0.27; 'header:X-Complaints-To:1': 0.27; 'header:In-Reply-To:1': 0.27; 'point': 0.28; 'external': 0.29; "doesn't": 0.30; 'restrict': 0.30; 'code': 0.31; 'easier': 0.31; 'that.': 0.31; 'are.': 0.31; 'commonly': 0.31; 'directory,': 0.31; 'file': 0.32; 'probably': 0.32; 'skip:_ 10': 0.34; 'could': 0.34; 'anywhere': 0.35; 'but': 0.35; 'there': 0.35; 'doing': 0.36; 'entry': 0.36; 'subject:?': 0.36; 'searching': 0.37; 'to:addr:python-list': 0.38; 'files': 0.38; 'pm,': 0.38; 'skip:_ 30': 0.39; 'does': 0.39; 'itself': 0.39; 'to:addr:python.org': 0.39; 'received:org': 0.40; 'called': 0.40; 'even': 0.60; 'full': 0.61; 'information,': 0.61; 'simply': 0.61; 'back': 0.62; 'optimized': 0.68; 'reverse': 0.68; 'link:': 0.72; 'pray': 0.84
X-Injected-Via-Gmane http://gmane.org/
To python-list@python.org
From Dave Angel <davea@davea.name>
Subject Re: how: embed + extend to control my running app?
Date Wed, 24 Jul 2013 21:14:34 -0400
References <6c1a5595-b2f7-4712-8c9c-be664dd8ed18@googlegroups.com> <mailman.4893.1374282263.3114.python-list@python.org> <823607d0-9365-4dbb-b80c-8221bb514b01@googlegroups.com> <b59q27Fj75iU1@mid.individual.net> <522e7d68-6c26-4036-9389-bc780d792f86@googlegroups.com> <e774c415-534a-432d-a08b-fd9bbe1e5853@googlegroups.com>
Mime-Version 1.0
Content-Type text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding 7bit
X-Gmane-NNTP-Posting-Host 174.32.174.34
User-Agent Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130623 Thunderbird/17.0.7
In-Reply-To <e774c415-534a-432d-a08b-fd9bbe1e5853@googlegroups.com>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.15
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <http://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <http://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Newsgroups comp.lang.python
Message-ID <mailman.5076.1374714892.3114.python-list@python.org> (permalink)
Lines 52
NNTP-Posting-Host 2001:888:2000:d::a6
X-Trace 1374714892 news.xs4all.nl 15914 [2001:888:2000:d::a6]:60841
X-Complaints-To abuse@xs4all.nl
Xref csiph.com comp.lang.python:51180

Show key headers only | View raw


On 07/24/2013 08:51 PM, David M. Cotter wrote:
> update: okay so the python27.dll is in /windows/system32 so ignore that
>
> i've set my include directory correct, so i can compile
>
> i've set my "additional libraries" directory to the "libs" directory (where the ".lib" files are.  (note: NOT including "Lib" directory, cuz that's full of .py files and folders) (note: NOT including "DLLs" directory, cuz, why would i?)
>
> No need to specify "additional dependencies" for the .lib file, cuz the pyconfig.h file does that.
>
> but there is no "python27_d.dll" anywhere to be found, so i hacked pyconfig.h to get rid of the "_d".
>
> so it all compiles.
>
> but it won't link:
>
> 	LNK2001: unresolved external symbol __imp___Py_RefTotal
> 	LNK2001: unresolved external symbol __imp___Py_NoneStruct
> 	LNK2019: unresolved external symbol __imp__PyArg_ParseTuple
> 	LNK2019: unresolved external symbol __imp__PyFloat_FromDouble
> 	LNK2019: unresolved external symbol __imp__PyString_FromString
> 	LNK2019: unresolved external symbol __imp__PyRun_SimpleStringFlags
> 	LNK2019: unresolved external symbol __imp__Py_InitModule4TraceRefs
> 	LNK2019: unresolved external symbol __imp__Py_Initialize
> 	LNK2019: unresolved external symbol __imp__Py_SetProgramName
> 	LNK2019: unresolved external symbol __imp__Py_Finalize
> 	LNK2019: unresolved external symbol __imp__PyRun_SimpleFileExFlags
>
> what, pray tell, am i doing wrong?  *hopeful face*
>

Digging *far* back in my Windows memory, those look like imports.  You 
probably need the import lib for the Python.dll.  Probably called 
somethng like python.lib.   You could check that by doing a dumpbin of 
python.dll and searching for those entry points.

An import lib in Windows simply tells the linker that those symbols will 
be resolved at runtime, and from a particular dll. They can also change 
the names to be used (removing the __imp__ prefix) and even specify a 
numeric entry point (to slow down people who reverse engineer these things).

If I recall right, there's a way in Microsoft's toolset to create an 
import lib from a dll, assuming the dll doesn't restrict itself to those 
numeric thingies.

As for the _d suffix, that's commonly used to specify debug versions of 
things.  They would have extra symbol information, and less optimized 
code so that it's easier to use a debugger on them.


-- 
DaveA

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-19 16:52 -0700
  Re: how: embed + extend to control my running app? Chris Angelico <rosuav@gmail.com> - 2013-07-20 11:04 +1000
    Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-23 22:15 -0700
      Re: how: embed + extend to control my running app? Gregory Ewing <greg.ewing@canterbury.ac.nz> - 2013-07-24 22:53 +1200
        Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-24 09:10 -0700
          Re: how: embed + extend to control my running app? Chris Angelico <rosuav@gmail.com> - 2013-07-25 02:25 +1000
            Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-24 10:40 -0700
              Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-24 12:35 -0700
        Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-24 13:37 -0700
          Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-24 17:51 -0700
            Re: how: embed + extend to control my running app? Dave Angel <davea@davea.name> - 2013-07-24 21:14 -0400
              Re: how: embed + extend to control my running app? "David M. Cotter" <me@davecotter.com> - 2013-07-25 11:24 -0700

csiph-web