奇怪的是LoadLibrary总是返回0?
procedure TForm1.Button1Click(Sender: TObject);
var
h:hwnd;
begin
h:=LoadLibrary('cards.dll');
// showerrormessage;
if h<>0 then
begin
image1.Picture.Bitmap.LoadFromResourceID(h,1);
FreeLibrary(h);
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
h:hwnd;
begin
h:=LoadLibrary('cards.dll');
// showerrormessage;
if h<>0 then
begin
image1.Picture.Bitmap.LoadFromResourceID(h,1);
FreeLibrary(h);
end;
end;
程序中通过LoadLibrary('cards.dll')调用,若到其他没有这个文件的电脑上如何运行?发布程序时把这个文件带上?
待我查一下资料
Kingron(WinAPI) 说得对,是有问题,我在大富翁论坛上提问
有个人告诉我在NT上没有问题,不知道怎么回事?
它不是标准DLL
试试再说
若贴代码出来我给单独加分。
this is why!!!???
HMODULE handle=LoadLibraryEx("E:\\cards.dll",NULL,LOAD_LIBRARY_AS_DATAFILE);
HBITMAP hbp=LoadBitmap(handle,MAKEINTRESOURCE(1));
CBitmap bitmap;
bitmap.Attach (hbp);
BITMAP bp;
bitmap.GetBitmap (&bp);
CDC* dc=GetDC ();
CDC memDC;
memDC.CreateCompatibleDC (dc);
memDC.SelectObject (&bitmap);
dc->BitBlt (0,0,bp.bmWidth ,bp.bmHeight ,&memDC,0,0,SRCCOPY);
ReleaseDC(dc);
FreeLibrary(handle);
我不懂VC!
cdtDraw(dc:HDC;x,y,cd,md: integer; rgbBK: DWord);
cdtDrawEx(dc:HDC;x,y,dx,dy,cd,md: integer; rgbBk;DWord);
cdtAnimate(dc:HDC;cd,md,rgbBK:DWord);
cdtTerm;
procedure TForm1.Button1Click(Sender: TObject);
var
h:hwnd;
begin
h:=LoadLibraryEx('cards.dll',0,LOAD_LIBRARY_AS_DATAFILE);
if h<>0 then
begin
image1.Picture.Bitmap.Handle:=LoadBitmap(h,MAKEINTRESOURCE(strtoint(edit1.text)));
caption:=SysErrorMessage(getlasterror);
FreeLibrary(h);
end;
end;
但是我画葫芦以后却发现LoadLibrary失败,NT的和2000的都好用,95也好用。
98的就不可以。据说是16位和32位的问题。
h:=LoadLibrary('cards.dll') 在 win98 也能成功。由此看来,好像是 Win98 下的 Cards.dll 的缘故了。