【发布时间】:2012-03-07 10:54:34
【问题描述】:
我通过以下 hack 使用 vb6 创建了一个“标准”dll:http://windowsdevcenter.com/pub/a/windows/2005/04/26/create_dll.html?page=3。我们称之为 myVB6dll。
myVB6dll 中的一个函数(称为 myVB6dllFunc())从 hid.dll 调用 HidD_GetHidGuid() 并返回 GUID 的一个字节(用于测试目的)。当我从 vb6 中的测试程序调用 myVB6dllFunc() 时,它返回正确的值。但是,当从 python2.7 测试程序调用时,它会抛出“访问冲突写入 0x00000009c”。
用 C++ 编写的类似 dll 在从 VB6 或 Python2.7 调用时都可以工作。
那么,VB6 dll 真的不是标准 dll,而且 hack 并不能真正起作用(但它确实适用于 Python 调用的来自 vb6 dll 的简单测试用例,例如如果我返回两个整数的总和)?有没有办法让它在 Python 中工作?这两个dll有什么区别?
【问题讨论】: