日期:2014-05-19  浏览次数:20976 次

!!!!!DllImport的使用!!!!!
(C++)开发
void   __stdcall   Make(char*   szData,   long   nBarType,   long   nPicHeight,char*   szBmpFileName);

参数说明:szData                   条码数据     各种类型条码所支持数据类型不同
  nBarType               条码类型编号
  nPicHeight 生成条码图片的高度,象素
  szBmpFileName     生成条码的图片文件名,BMP格式

我的代码
[DllImport( "MakeBarCodeOne.dll ")]
                public   static   extern   void   Make(string   szData,   long   nBarType,   long   nPicHeight,   string   szBmpFileName);

public   void   MakeBar()  
                {
                        Make(textBox1.Text,   8,   40,   @ "D:\abc.bmp ");
                }

报错:尝试读取或写入受保护的内存。这通常指示其他内存已损坏

PS:一定要把要Import的DLL放到System32文件下吗?

------解决方案--------------------
当前运行的目录,system32,或者配置好的环境变量目录都是可以的。
------解决方案--------------------
把C++ LONG -> C# int