我有一個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