声明:
function Test(var nParam1: integer; var nParam2: PChar): Integer; Stdcall;External'api.dll';
调用:
p1,p2:pchar;
nPa2: integer;
r: integer;
nPa1:array[0..20000] of char;
p1 := nPa1;
r := Test(nPa2,p1);
在delphi调用成功,我在c#中这么声明调用:
[DllImport("EsmApi.dll",CharSet = CharSet.Ansi,CallingConvention = CallingConvention.StdCall)]
static extern int Test( ref int buffercount, byte[] buffer);
int buffercount=-1;
//StringBuilder buffer=new StringBuilder(20000);
byte[] buffer=new byte[20000];
int reportval=Test(ref buffercount, buffer);//执行会在这行报错,提示:未将对象引用到实例
buffer参数我用StringBuilder 得到一样的结果,都报错。
各位,帮忙看看,dll是人家提供的。
function Test(var nParam1: integer; var nParam2: PChar): Integer; Stdcall;External'api.dll';
调用:
p1,p2:pchar;
nPa2: integer;
r: integer;
nPa1:array[0..20000] of char;
p1 := nPa1;
r := Test(nPa2,p1);
在delphi调用成功,我在c#中这么声明调用:
[DllImport("EsmApi.dll",CharSet = CharSet.Ansi,CallingConvention = CallingConvention.StdCall)]
static extern int Test( ref int buffercount, byte[] buffer);
int buffercount=-1;
//StringBuilder buffer=new StringBuilder(20000);
byte[] buffer=new byte[20000];
int reportval=Test(ref buffercount, buffer);//执行会在这行报错,提示:未将对象引用到实例
buffer参数我用StringBuilder 得到一样的结果,都报错。
各位,帮忙看看,dll是人家提供的。
解决方案 »
- DGV 那个滚动条 为什么拉不到最下面呢
- DataGrid控件對數據進行刪除
- 怎样给 线程 传递参数,new Thread(new ThreadStart(ThreadHandle))好像不行哇。
- ------------C#中怎么调用 .OCX ? 【 急 】
- 求助:installshield制作安装包的详细教程
- 【求助】一个简单问题使我困惑了半天,请高手指教。立即结贴:)
- 在银行网站上,关与ID值、密码的加密,是使用128位的吗
- 用npoi导出复杂格式的excel报表
- 关于前台线程的疑问
- 谢谢先,该xml文件的string节点中的内容,我怎么能读出来呢。。
- 诚请思归、孟子E章高手级别的大哥帮忙解决(WEB MSN自动发送信息)
- 也秀一下网站◆源码搜搜◆
这句只是开一个大小为20000的byte型数组buffer,
但buffer[i] 0=<i<=19999并没有一个确定的值。
任何类型在C#中都做为一个object处理,不给确定值
直接在Test方法中用,应该会有问题。byte如此,
StringBuilder更不用说了。信口一说,仅供参考