Ctypes pegando exceção

Eu estou jogando um pouco com ctypes e C / C ++ DLLs Eu tenho uma dll de "matemática" bastante simples

<code>double Divide(double a, double b)
{
    if (b == 0)
    {
       throw new invalid_argument("b cannot be zero!");
    }

    return a / b;
}
</code>

Funciona até agora o único problema, eu recebo uma exceção WindowsError em Python e não consigo recuperar o textob não pode ser zero Existe algum tipo de exceção especial que devo jogar? Ou o código Python deve ser alterado? código python:

<code>from ctypes import *

mathdll=cdll.MathFuncsDll
divide = mathdll.Divide
divide.restype = c_double
divide.argtypes = [c_double, c_double]

try:
    print divide (10,0)
except WindowsError:
    print "lalal"
except:
    print "dada"
</code>

questionAnswers(2)

yourAnswerToTheQuestion