我已经在 Stackoverflow 上搜索了我遇到的问题,但它们都非常针对特定的访问冲突。
我认为我遇到问题的一段代码是一个名为 的函数MpqExtractFile
,它存储在一个 DLL 中。
功能:
function MpqExtractFile(var hMPQ: Integer; szToExtract, szExtracted: AnsiString): Boolean; stdcall; external 'MpqLib.dll' name 'B2';
称呼:
if MpqExtractFile(hMPQ, 'war3map.j', AnsiString(tempDir+'\war3map.j')) = True
then ShowMessage('Success.')
else ShowMessage('Failed.');
执行此代码后,我的应用程序会引发访问冲突错误,因此ShowMessage
根本不会显示。
我不确定以上是否足以估计问题可能是什么,但如果还有什么我应该告诉我的。
编辑
这是我一直在解释的 VB.NET 源代码的摘录:
Declare Function MpqExtractFile Lib "MpqLib.dll" Alias "B2" (ByVal hMPQ As Integer, ByVal szToExtract As String, ByVal szExtracted As String) As Boolean
我显然不熟悉其他语言的声明,但我在声明 VB 函数的同一个 VB 文件中找到了以下函数。
BOOL WINAPI MpqExtractFile(HANDLE hMpq, const char * szToExtract, const char * szExtracted);
提前谢谢你!