[DllImport("user32.dll",EntryPoint="SendMessage")]
[DllImport("user32.dll",EntryPoint="FindWindow")]

解决方案 »

  1.   

    高手们我记得
    [DllImport("user32.dll",EntryPoint="SendMessage")]
    这里面有好多参数要设置,能不能将的详细些。多谢了
      

  2.   

    DLL,是你自己用C#做的吗?
    在工具箱中右击有一个选项可以用你找到。
    如果是API,用:
    [DllImport("user32.dll",EntryPoint="SendMessage")]
    [DllImport("user32.dll",EntryPoint="FindWindow")]
      

  3.   

    DllImport 属性用于指定包含外部方法的实现的 dll 位置。namespace System.Runtime.InteropServices
    {
       [AttributeUsage(AttributeTargets.Method)]
       public class DllImportAttribute: System.Attribute
       {
          public DllImportAttribute(string dllName) {...}
          public CallingConvention CallingConvention;
          public CharSet CharSet;
          public string EntryPoint;
          public bool ExactSpelling;
          public bool PreserveSig;
          public bool SetLastError;
          public string Value { get {...} }
       }
    }
    准确地说,DllImport 属性具有下列行为: 它只能放置在方法声明上。 
    它具有单个定位参数:指定包含被导入方法的 dll 名称的 dllName 参数。 
    它具有五个命名参数: 
    CallingConvention 参数指示入口点的调用约定。如果未指定 CallingConvention,则使用默认值 CallingConvention.Winapi。 
    CharSet 参数指示用在入口点中的字符集。如果未指定 CharSet,则使用默认值 CharSet.Auto。 
    EntryPoint 参数给出 dll 中入口点的名称。如果未指定 EntryPoint,则使用方法本身的名称。 
    ExactSpelling 参数指示 EntryPoint 是否必须与指示的入口点的拼写完全匹配。如果未指定 ExactSpelling,则使用默认值 false。 
    PreserveSig 参数指示方法的签名应当被保留还是被转换。当签名被转换时,它被转换为一个具有 HRESULT 返回值和该返回值的一个名为 retval 的附加输出参数的签名。如果未指定 PreserveSig,则使用默认值 true。 
    SetLastError 参数指示方法是否保留 Win32“上一错误”。如果未指定 SetLastError,则使用默认值 false。 
    它是一次性属性类。 
    此外,用 DllImport 属性修饰的方法必须具有 extern 修饰符。
      

  4.   

    在C#中,int 相当于VB6中的long,你要注意了。参数类型不对会引发错误的。
    我以前也是学vb6的,刚学C#时调用外部的DLL也伤透了脑,呵呵。
      

  5.   

    DLL是外部的不是我用C#做的,能不能据个例子,比如说该DLL内有两个方法如下
    Long Getone(int a,int b)
    void GetTwo(string a)
    这样在c#里该怎么办呀
    麻烦了!
      

  6.   

    [DllImport("你的.dll")]
    public static extern int VC_PosPrintHZString(int a, int b);
      

  7.   

    EntryPoint="SendMessage",如果不加这个你声明的函数,必须和内部的一样,如果加的话
    你可以自己定义,一般我都和内部一样
      

  8.   

    上面错拉
    public static extern long Getone(int a, int b);
      

  9.   

    添加引用,引用你的dll文件的名称。
      

  10.   

    [DllImport("user32.dll",EntryPoint="SendMessage")]
    SendMessage***
    [DllImport("user32.dll",EntryPoint="XX")]
    XX**
      

  11.   

    在C#中,你可以在EntryPoint域通过名字和序号声明一个动态链接库函数,如果在方法定义中使用的函数名与DLL入口点相同,你不需要在EntryPoint域显示声明函数。否则,你必须使用下列属性格式指示一个名字和序号。 [DllImport("dllname", EntryPoint="Functionname")] 
    [DllImport("dllname", EntryPoint="#123")] 
    值得注意的是,你必须在数字序号前加“#” 
    下面是一个用MsgBox替换MessageBox名字的例子: 
    [C#] 
    using System.Runtime.InteropServices; public class Win32 { 
    [DllImport("user32.dll", EntryPoint="MessageBox")] 
    public static extern int MsgBox(int hWnd, String text, String caption, uint type); 

    许多受管辖的动态链接库函数期望你能够传递一个复杂的参数类型给函数,譬如一个用户定义的结构类型成员或者受管辖代码定义的一个类成员,这时你必须提供额外的信息格式化这个类型,以保持参数原有的布局和对齐。