我有一个const指针指向一个指针Fred,我不明白为什么一个static_cast是不够的.
typedef struct {
int n;
} Fred;
Fred *pFred;
Fred **const ppFred = &pFred;
void **const ppVoid = static_cast<void ** const>(ppFred);
Run Code Online (Sandbox Code Playgroud)
请有人能解释为什么reinterpret_cast需要一个指针转换Fred*为指针void*,但是static_cast是精指针转换Fred为指针void.
我已经能够从源代码rpy2forge 安装v2.0.8 .msi,但是我想使用包含软件包代码的最新版本,即v2.1.9.
我正在尝试在windows(python 2.6.6)中编译rpy2 .
CL抱怨因为LibExtern被定义为extern和declspec不同的地方.
gcc并且c++无法编译而没有错误.
我假设这在unix上编译好,而我所缺少的是一些配置(概率环境变量),因为我无法相信它会以不可编译的形式发布.
有人指出我正确的方向吗?
很多thx
DM
我将 python 嵌入到 C++ dll 中(因此最终我可以将其放入 xll 中)。当设置错误时 Py_Initialize 被记录为最终失败 - 请参阅http://docs.python.org/c-api/init.html,“...如果初始化失败,则这是一个致命错误。”。
是否可以捕获此错误以及如何捕获?
考虑也许是一个全局 Windows 钩子?
我想这样做:
x %doSomething% y
Run Code Online (Sandbox Code Playgroud)
对于任何x和任何y都很容易做到(见下面的代码),除非x是str.
是否有任何方法(例如,添加特殊方法或引发特定错误)导致旧样式字符串格式化失败(类似于1%doSomthing如何通过TypeError失败)并恢复为doSomething对象中定义的__rmod__方法?
class BinaryMessage(object):
def __init__(self, fn):
self._fn = fn
def __rmod__(self, LHS):
return BinaryMessagePartial(self._fn, LHS)
class BinaryMessagePartial(object):
def __init__(self, fn, LHS):
self._fn = fn
self._LHS = LHS
def __mod__(self, RHS):
return self._fn(self._LHS, RHS)
def _doSomething(a , b):
return a + b
doSomething = BinaryMessage(_doSomething)
result = 5 %doSomething% 6
assert result == 11
Run Code Online (Sandbox Code Playgroud) 我正在使用Windows XP应用程序中的TCP实现点对点IPC.
我正在使用Python 2.6.6中的select和socket模块.
我有三个TCP线程,一个通常阻塞的读取线程select(),一个通常在事件上等待的写入线程(事件表明有要写入TCP的东西)和一个接受连接的侦听线程.
如果我启动一个新连接或关闭当前连接,那么我需要中断读取选择并重新启动它,以便它也会监听新接受的套接字.
在winsock我可以调用WSACancelBlockingCall哪个将优雅地中断选择.
所以我的问题是:是否有可能以pythonic方式完成所有这些而无需使用poll()?
很多thx
--DM
我正在维护一段代码,并在VBA函数中遇到了这个问题:
isIn("Fred", [PeopleList])
Run Code Online (Sandbox Code Playgroud)
PeopleList是名为range的工作簿.我之前从未注意过这种语法,只是想知道它是我错过的还是新的?我应该将范围传入函数还是可以使用?