当前位置:主页>仓库管理软件> 列表

问Delphi2006 问题 找免费仓库管理软件

记账软件版1楼: 实在被Delphi7气惨了,目前发现以下问题:
C++申明:AA(int *);Delphi申明为AA(var n:Integer);

C++申明:AA(int **);Delphi申明为AA(var pn:PInteger);
只要C++传入NULL,Delphi肯定错误!!!!!!!!!,操!!!!,问题很多其它程序都是C++编的~~~~~~
不知道Delphi2006休正了这些问题没有,对Delphi有时侯实在没话说!!!!

2楼: 呵呵,楼主应该多学学Pascal语言.少生气. 如免费仓库管理软件

3楼: 看一看以下话题:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3323007

http://www.delphibbs.com/delphibbs/dispq.asp?lid=3307128

现在已经强行改变了申明:
IEnumIDList::Next
{ShlObj 的Next申明使用出现错误,由
var pceltFetched:ULONG改为
pceltFetched:PULONG }
function Next(celt: ULONG; out rgelt: PItemIDList;
out pceltFetched: PULONG): HResult; stdcall;

IShellFolder::SetNameOf
{ShlObj的SetNameOf申明使用出现错误,由
var ppidlOut:PItemIDList改为


ppidlOut:PPItemIDList}
function SetNameOf(hwndOwner: HWND; pidl: PItemIDList; lpszName: POLEStr;
uFlags: DWORD; ppidlOut: PPItemIDList): HResult; stdcall;

问题解决,靠!!!,以上没有在ShlObj.pas里改,而是新建一个Global.pas强行定义的,不是懂不懂pascal的问题,而是无法使用的问题!想起来就生气,放眼一看,很多都是这样,没办法,懒的改!!!

4楼: I LIKE PASCAL,I LIKE DELPHI2006 VERY MUCH!BECAUSE IT''S "RAD"!LET''S GO!

5楼: C++申明:AA(int *);Delphi申明为AA(var n:Integer);

C++申明:AA(int **);Delphi申明为AA(var pn:PInteger);
楼主既然要用空指针.何不用
Type
PInteger =^Integer;
PPInteger = ^PInteger;
AA(n:PInteger);
AA(pn:PPInteger);
里面判断是不是Nil就行了.虽然var等价与C的按地址传值.但也可以用C一样的指针的方式啊.Delphi给你两种方式,你觉得哪种方便就可以用哪种

6楼: 楼上的朋友啊,不知道你是否知道我在说一个问题?那不是我定义的,是Delphi自己定义的,错了(不兼容),你看一下ShlObj.pas里的IShellFolder,IEnumIDList的那些定义就知道了,尽是var var var 的,用它做外壳供explorer.exe调用要出错的,不要告诉我explorer.exe是Delphi做的哦,另外,如果Delphi2006还是这样定义的话,照样要出错,哪位朋友有兴趣可以试一下。