我正在转发这个。我遇到的问题是,当我通过 Visual Studio 2010 运行它时,我的代码在本地开发服务器上工作,但是当我上传到我们的主机时,它在一个 dll 调用中失败。我的相关代码有点像:
IntPtr thingDB = loadDBThing("pathToDB")
If thingDB = 0 then <- check to see if pointer was returned
display getLastErrorMessage()
EXIT SUB
END IF
...
IntPtr thing = createThing(thingDB)
If thing = 0 then
display getLastErrorMessage()
EXIT SUB
END IF
...
IntPtr resultThing = doThing(thing) <- Code fails here
If resultThing = 0 then
display getLastErrorMessage()
EXIT SUB
END IF
...
IntPtr anotherResultThing = doOtherThing(resultThing)
似乎doThing()
在实时服务器上引发错误,但在本地服务器上一切正常。我正在使用的库是不支持的第 3 方库。服务器没有抛出错误,但我能够检查指针的返回值并从库中获取最后一条错误消息,尽管我得到的错误字符串('未知异常')不是很有帮助。我检查了所有结果变量的指针值并doThing()
返回一个零值。如果我改变并且到resultThing
的返回值我实际上得到了一个指针但是不会接受并且我不能将它转换回或者doThing()
Int64
doOtherThing()
resultThing
Int32
IntPtr
想知道是否有人可以帮助解释为什么会这样?
操作系统:Microsoft Windows NT 5.2.3790 Service Pack 2 Microsoft-IIS/6.0 ASP.NET 版本:2.0.50727.3643
平台字符串:Win32NT