奇怪的是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;

解决方案 »

  1.   

    要还是没办法就用resourse workshop 把图片全部提取出来,做一个新的资源文件。
    程序中通过LoadLibrary('cards.dll')调用,若到其他没有这个文件的电脑上如何运行?发布程序时把这个文件带上?
      

  2.   

    用API想办法列出它的所有资源清单;
    待我查一下资料
      

  3.   

    Card32.dll中有三个函数可以直接画扑克牌,只要传入一个整形参数就可以,具体什么函数倒是没记清除了,根本就不用什么资源
      

  4.   

    cards.dll好像是window纸牌类游戏自带的动态链接库,一般都有.
    Kingron(WinAPI) 说得对,是有问题,我在大富翁论坛上提问
    有个人告诉我在NT上没有问题,不知道怎么回事?
      

  5.   

    cards.dll是它的资源库,里面有很多的卡片位图!用资源查看器可以看得到!要不就采用sqtang(永失我爱)的方法!
      

  6.   

    我想LoadLibrary("cards.dll")总是不成功,返回的句柄总是为零。
      

  7.   

    用LoadLibaryEx,不要用LoadLibary
    它不是标准DLL
      

  8.   

    不是标准DLL?!用LoadLibaryEx()能行?!
    试试再说
      

  9.   

    to longx:LoadLibaryEx()为什么也不行?返回的句柄总是0,你自已试过没有,
    若贴代码出来我给单独加分。
      

  10.   

    对于一些Dll,像系统的一些正在使用的DLL和CPL文件(例如sysdm.cpl)等等用LoadLibrary()总是返回0,为什么?有什么解决方法?谁知道,我单独给分。
      

  11.   

     Undeclared identifier: 'LoadLibaryEx()'
    this is why!!!???
      

  12.   

    用LoadLibraryEx肯定可以,下面的代码就可以显示,我已测试过.
    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);
      

  13.   

    谁用delphi能做出来呀?!
    我不懂VC!
      

  14.   

    cdtInit(var x,y: integer);
    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;
      

  15.   

    我翻译成Delphi,在NT和2000中通过,在98中还是通不过。:)
    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;
      

  16.   

    在大富翁论坛也是这么说的,2000 and NT好使,98不好使!
      

  17.   

     对了,在98底下你也应该用NT的Card动态库,从NT拷贝一动态库就可以了
      

  18.   

    这个Cards.dll是有问题的,以前我记得一本VC4技术内幕中提到的装载这个DLL的。
    但是我画葫芦以后却发现LoadLibrary失败,NT的和2000的都好用,95也好用。
    98的就不可以。据说是16位和32位的问题。
      

  19.   

    各位,鄙人重新写了一个扑克牌(TCard)的Component.有需要的话,请通知我。
      

  20.   

    to :Kingron(WinAPI)  你把 WinNT\System32\Cards.dll 拷贝到 windows\System 目录并覆盖原来的 Cards.dll. 
     h:=LoadLibrary('cards.dll') 在 win98 也能成功。由此看来,好像是 Win98 下的 Cards.dll 的缘故了。