文件一共有三个:dcrf32.dll、dcrf32.h、dcrf32.lib
如果是VC++的人员编程的话就把dcrf32.lib加入到工程>设置 链接功能块就行了,他们就可以编其他功能了
可是小弟我只会编VC#。
------------------------------
下面是一些代码,我来请教各位大侠、高手们!!!
头文件dcrf32.h里:
#define uc unsigned char
extern "C"
{
//1.
HANDLE  __stdcall  dc_init(__int16 port,long baud);//链接串口,返回一个句柄
//2.
__int16  __stdcall dc_exit(HANDLE icdev);
//3.
__int16  __stdcall dc_config(HANDLE icdev,unsigned char _Mode,unsigned char _Baud);... ...
解释一下:int  dc_init(int port,long baud);
功 能:初始化通讯口
参 数:port:取值为0~19时,表示串口1~20;为100时,表示USB口通讯,此时波特率无效。
            baud:为通讯波特率9600~115200
返 回:成功则返回串口标识符>0,失败返回负值,见错误代码表
   例:int icdev;
       icdev=dc_init(0,9600);//初始化串口1,波特率9600----------------------------------------------------dcrf32.dll文件没打开过。
-----------------------------------------------
我用C#调用,用以下方发会出现异常(“试图加载格式不正确的程序。 (异常来自 HRESULT:0x8007000B)”)。但开始没有语法错误的        [DllImport("dcrf32.dll")]
        public static extern IntPtr dc_init(int port,int baud); //short,int32我试了不行        private void button1_Click(object sender, EventArgs e)
        {
            IntPtr re = dc_init(100, 9600);//按按钮“链接串口”的时候出错了<-这句出错:试图加载格式不正确的程序。
        }
我的项目文件:http://download.csdn.net/detail/cyloofts/4100623   在我的资源里
这个问题挺有意思,大家具体分析一下  
解决了可以发我邮箱2368421441#qq.com 交流交流
请大家指教,交流一下~

解决方案 »

  1.   

    你提供的项目文件分明是这样声明的:
    [DllImport("dcrf32.dll", SetLastError = true, EntryPoint = "dc_init",CallingConvention=CallingConvention.Cdecl)]
            public static extern IntPtr dc_init(Int32 port, Int32 baud);还有你调试的时候你的DLL是放在哪个目录里?
      

  2.   

    Windows/system32里有,还有Debug里可以复制一个。但是现在的问题不是找不到dcrf32.dll的问题
      

  3.   

    port:取值为0~19时,表示串口1~20;为100时,表示USB口通讯,此时波特率无效。
       baud:为通讯波特率9600~115200
      

  4.   

    第一确认你有那个 DllImport的 DLL。
    第二确认你的C# 程序运行平台是否和 DLL 一致,注意 AnyCPU 的问题。
      

  5.   

    如果確定可以找的到.dll檔(因為您放在system32資料夾內,所以這樣宣告沒問題)
    試試看下面這個代碼
    [DllImport("dcrf32.dll", SetLastError = true, CallingConvention=CallingConvention.StdCall)]
      public static extern IntPtr dc_init(Int16 port, Int32 baud);
    因為你的代碼是32bit,所以你如果在64bit作業系統上測試會有問題,所以你可以在
    屬性/建置/平台目標將Any CPU改為x86
      

  6.   

    08 r2 framework 4 和楼主一样的情况 修改为x86cpu类型 加载dll的问题解决了