这个是用vc编写的dll中的一个示例函数。
int MacTest(int * random)
{
*random = 10;
return 0;
}
在delphi中如下调用:
procedure func;
var
i: integer;
begin
MacTest(@i);
showmessage(inttostr(i));
end;在该函数执行的时候,提示内存访问错误。就是访问了不该访问的内存。
但是如果把“ showmessage(inttostr(i));”这行去掉,就不会报错了。
奇怪啊。
int MacTest(int * random)
{
*random = 10;
return 0;
}
在delphi中如下调用:
procedure func;
var
i: integer;
begin
MacTest(@i);
showmessage(inttostr(i));
end;在该函数执行的时候,提示内存访问错误。就是访问了不该访问的内存。
但是如果把“ showmessage(inttostr(i));”这行去掉,就不会报错了。
奇怪啊。
解决方案 »
- 数据表乱码 delphi数据库
- DSVideoWindowEx
- 一个很诧异的sql语句问题
- Fieldbyname().asboolean 对应的SQL server中的数据类型是什么?(是否为bit)
- 在dehpi中我想输出指定的内容到word的指定位置、如何在word的查找我的指定位置:@日期@ ?而且我想用剪贴板的内容代替他!谢谢各位大哥大
- 請問怎樣改變一下我的Dcom中的Port值?
- 请问如何实现本地文件夹与远程文件夹的文件同步,Thanks!!!
- 1放分300-->关于一个超级问题,请教大家,欢迎高手指点!!!菜鸟也可以来学习~~~~~~~
- 在adotable中增加了一个计算字段。怎么样才能把该字段的值写入到表中(表有对应的同类型的字段)??
- 如何使用SQL Server的binary类型?
- 求助Delphi7的中英文对照教材或资料!!
- 问个简单问题.
procedure func;
var
i: Pinteger;
begin
try
New(i);
MacTest(i);
showmessage(inttostr(i^));
finally
Dispose(i);
end;
end;
TFun=function(Random:integer):integer;stdcall;
再用loadlibrary 试试
TFun=function(Random:PInteger):integer;stdcall;
使用loadlibrary还是出同样的错误。postren(小虫) :
vc中声明的是__declspec;delphi中使用stdcall