public class Functions
{  .............
  [DllImport("GYINTERFACE.dll",EntryPoint="INIT")]
  public static extern int INIT();
  ..............}调用的写法如下:
try
                {
                    int returnValue = Functions.INIT();
                    if (returnValue != 0)
                    {
                        this.errText = "初始化接口失败!";                        return -1;
                    }
                }
                catch (Exception ex)   --这抛出异常提示  无法找到dll的入口点
                {
                    this.errText = ex.Message;                    isInit = false;                    return -1;
                }需要调用的GYINTERFACE.dll是用pb的com+弄的。是什么原因那。谢谢各位了啊。

解决方案 »

  1.   

    你的dll是生成好了的吗?是不是一个单独的dll文件我看你现在的方法是一般调用windowsAPI的方法你要是一个DLL的话,还是在项目上右键引用吧或者你非要这么调的话,我建议你把这个dll,放到system32文件夹底下试试(就是在windows文件夹里面的那个系统的),因为windowsAPI也都在那里面了,[DllImport("GYINTERFACE.dll",EntryPoint="INIT")]看这个也没写路径,所以估计它直接去api所在的文件夹里面去找了,所以你可以试试看,当然如果是单独的一个dll的话,我还是建议在项目上右键引用这么去调
      

  2.   

    入口叫:INIT吗?
    c#调用的DLL有 规则的,不是随便一个DLL都可以调用的。看看pb定义的方式
      

  3.   

    GYINTERFACE.dll中的文档有INIT的方法声明。
      

  4.   

    怎么声明的
    使用了define的方式?看头文件?define的方式不是C#中的名称,应该使用定义方法的那个名称