偶有一DLL,如下,是求计算机名字的,可以用,
但是求出名字后就出现错误对话框,INVALID POINTER OPERATION
不知道为什么哪位大侠知道不吝赐教library Project2;uses
SysUtils,windows,
Classes;function GetName:String;stdcall;
var
pcComputer: PChar;
dwCsize: DWORD;
begin
{ TODO : 取得名字}
dwCsize := MAX_COMPUTERNAME_LENGTH + 1;
result := '';
GETMEM(pcComputer, dwCsize);
try
if windows.GetComputerName(pcComputer, dwCsize) then
result := pcComputer;
finally
freemem(pcComputer);
end;
end;
{$R *.res}
exports GetName;
begin
end.调用方法: function GetName:STRING;STDCALL EXTERNAL 'D:\tt\Project2.dll';
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
VAR NAME:STRING;
begin
NAME:=GetName;
SHOWMESSAGE(name);end;
但是求出名字后就出现错误对话框,INVALID POINTER OPERATION
不知道为什么哪位大侠知道不吝赐教library Project2;uses
SysUtils,windows,
Classes;function GetName:String;stdcall;
var
pcComputer: PChar;
dwCsize: DWORD;
begin
{ TODO : 取得名字}
dwCsize := MAX_COMPUTERNAME_LENGTH + 1;
result := '';
GETMEM(pcComputer, dwCsize);
try
if windows.GetComputerName(pcComputer, dwCsize) then
result := pcComputer;
finally
freemem(pcComputer);
end;
end;
{$R *.res}
exports GetName;
begin
end.调用方法: function GetName:STRING;STDCALL EXTERNAL 'D:\tt\Project2.dll';
{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
VAR NAME:STRING;
begin
NAME:=GetName;
SHOWMESSAGE(name);end;
解决方案 »
- ADO读EXCEL出现乱码.急.........急
- 请教:这一段 SQL 语句 我要用Delphi怎么实现
- 关于交叉表查询、存储问题????
- 主从表的实际应用
- 事件影射问题
- access数据库问题
- 请教一个数据库连接的问题……(在线等,急啊~~~~~~~~~~帮帮忙啦~~~~~~~~~~~~)
- 请教:如何对表中的一个“价格进行月统计?
- 急呀!一个报表的问题!一个QRDBRichText的和一个QRDBText的问题!
- 紧急求救:如何连接Access2000数据库
- WM_NCLBUTTONDBLCLK 消息, 高手求解
- 用delphi作了个OCX,在装有delphi的机子上正常执行,没有装delphi的机子上显示如下后也可继续运行,是不是少了几个文件,如何不提示那个对
//function GetName:String;stdcall; 改为:
function GetName:shortString;stdcall;
//function GetName:STRING;STDCALL EXTERNAL 'D:\tt\Project2.dll';改为
function GetName:shortString;STDCALL EXTERNAL 'D:\tt\Project2.dll';
即可:
原因:自己看delphi在创建DLL时候的前边的注意点