2 jandhf jandhf 于 2016.01.21 17:39 提问

DllImport 方法调用dll文件返回-4

大侠们,我想问下我用下面方法调用dll文件,用方法openFile_DLL取值时返回值总是-4,请问是何原因?谢谢。
[DllImport("GFileAnalysis.dll", EntryPoint = "openFile", CallingConvention = CallingConvention.Cdecl)]
private static extern int openFile_DLL(string filename);

追问:
在dll文件中openFile方法的返回值为1或0的嘛。为啥子调用的时候返回-4.想不明白,请哪位大侠帮帮忙哇,在线等待。(我的操作系统是WIN 7 64位)

3个回答

caozhy
caozhy   Ds   Rxr 2016.01.21 17:45

CallingConvention.Cdecl
你确认么?大部分dll是StdCall

jandhf
jandhf   2016.01.21 18:02

@caozhy,当然确认了,程序就是这样的。

oyljerry
oyljerry   Ds   Rxr 2016.01.21 18:11

你代码中要看一下你的函数导出预编译宏怎么设置的。如果在代码层,直接Dllimport就可以导入了

jandhf
jandhf 麻烦问下,这个要在哪里看呀?我是引用别人提供的用C写的dll文件。
接近 2 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!