I love this community, you guys are really patient. Backslashes......
If you want to use single backslashed, you probably need to use "r" in front 
of the string

http://docs.python.org/ref/strings.html

I strongly recommend anyone new to python to get :-

1. learning python from Mark lutz
2. python on win32 , mark hammond

Its money well spent, you will be asking less questions that you wish u 
didnt ask.

----- Original Message ----- 
From: "Tim Roberts" <[EMAIL PROTECTED]>
To: "Python-Win32 List" <python-win32@python.org>
Sent: Saturday, February 23, 2008 2:54 AM
Subject: Re: [python-win32] Wrapper Windows Installer API functions, ctypes, 
.dll


Erik Fløisbonn wrote:
> Hello, I am creating a .dll that I load in python with ctypes. The
> .dll calls Windows Installer API functions (like MsiEnumProducts). I
> am having trouble calling these functions from python. When I import
> the msilib (or _msi) that comes with python, the function calls work.
> But when I do not import them, the call does not work and I get the
> following error message:
>
> WindowsError: [Error 182] The operatingsystem can not run %1
>
> (Original message is in norwegian: WindowsError: [Error 182]
> Operativsystemet kan ikke kjøre %1)
>
> I am wondering why the function calls are not working when I do not
> import the msi module, and why they work when I do import the module.
>
> I am running Windows Vista and python 2.5.1. I am compiling the source
> code with cl (from the windows SDK) like this:
>
> cl /LD msi.c msi.def  "C:\Program Files\Microsoft
> SDKs\Windows\v6.0\Lib\Msi.lib"
>
> My python file looks like this:
>
> from ctypes import *
> # import msilib (everything works when I uncomment this)
> print cdll.LoadLibrary("C:\Users\Erik\Documents\INF5660\Msi.dll").test(2)

You can't write normal strings with single backslashes!  You happened to
get lucky here, because 'u', 'e', 'd', 'i', and 'm' aren't recognized
escape codes, but if your name had been "Tom", this would not work.

You can write this in one of three ways:
   print
cdll.LoadLibrary("C:\\Users\\Erik\\Documents\\INF5660\\Msi.dll").test(2)
   print
cdll.LoadLibrary(r"C:\Users\Erik\Documents\INF5660\Msi.dll").test(2)
   print cdll.LoadLibrary("C:/Users/Erik/Documents/INF5660/Msi.dll").test(2)

However, this is not causing your immediate problem.

You might try dumping the imports for your DLL, to see if it needs a DLL
that it's not finding.  You can use the "depends" tool for that, or just
"link /dump /exports msi.dll".

-- 
Tim Roberts, [EMAIL PROTECTED]
Providenza & Boekelheide, Inc.

_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32 


_______________________________________________
python-win32 mailing list
python-win32@python.org
http://mail.python.org/mailman/listinfo/python-win32

Reply via email to