我有一个dll,我想要做一些网络连接,这个dll是作为一个非托管DLL从C#应用程序中调用的。 所有初始化都可以正常工作,但每次运行 - > get()时都会冻结。我有这样的代码:QNetworkAccessManager->在DLL中调用时会死机
.........
QUrl path(remotePath);
QNetworkRequest request(path);
currentFile.setFileName(localPath);
if(!currentFile.open(QIODevice::WriteOnly)){
doCallback("failed to open: " + localPath);
}
doCallback("before get: " + remotePath);
QNetworkReply* reply = this->manager->get(request);
doCallback("after get: " + localPath);
...........
的“之前得到”回调执行罚款,但从来没有一个“GET后”所以我想,当管理者试图将get()方法使其完全冻结。我错过了一些东西,或者这只是通过DLL而不可能实现的吗?
当未从非托管DLL调用时,相同的代码是否工作?即编写一个小型C++控制台应用程序并调用相同的代码并查看会发生什么。 – 2012-08-08 14:06:09
感谢您的快速回复。是的,我通过Qt创建了一个控制台应用程序,然后它工作正常......我想知道它是否可以做到这一点,我没有在我的非托管DLL中运行任何QApplication,但只是做一个类调用..? – 2012-08-08 14:30:19
好的,所以你*没有*创建一个本地控制台应用程序并调用相同的代码。如果您在本机应用程序中调用的所有内容都是发布的代码,并且您遇到同样的问题,那么您就知道问题所在。 – 2012-08-08 14:52:47