我有一个不使用标准库的应用程序。相反,它使用存根调用LoadLibrary / GetProcAddress,然后通过结果函数指针调用函数。
使用上面的方法,我的应用程序在ole32.dll中调用DoDragDrop。该呼叫正在返回E_UNEXPECTED,这显然意味着“灾难性失败”。
我想问的是,是否有人知道如何发现DoDragDrop调用中发生的事情?具体来说,我可以发现它正在寻找但找不到的功能或变量吗? (我猜它想要访问一些我在调用DoDragDrop时没有加载的函数或变量,如果我可以显式加载它,那么调用就会成功。)显然我不能进入调用 - 试图只是在DoDragDrop调用之后运行函数并逐步执行代码中的行。
:)
(我在XP中使用VS2005。)
答案 0 :(得分:0)
我记得当我忘记为进行调用的线程调用OleInitialize(Ex)/ CoInitialize(Ex)时会发生类似这样的事情。注意公寓必须是STA。