orangechl
驱动牛犊
驱动牛犊
  • 注册日期2007-03-12
  • 最后登录2007-05-02
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
阅读:3059回复:4

WM5 PPC SDK中没有Sdcardlib.lib?

楼主#
更多 发布于:2007-03-22 14:40
我的环境是VS2005+Mobile5 PPC SDK,在C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\Lib\ARMV4I中没有Sdcardlib.lib,而在include文件夹中是有sdcarddk.h的,这样导致以下代码编译时报错:

 HANDLE hSdcDev;
 hSdcDev = RegisterDevice( TEXT("DSK"), 1, TEXT("SDMemory.dll"),0);
 
 if(hSdcDev == INVALID_HANDLE_VALUE)
 {
  printf("not able register device.: %d", GetLastError());
 }

 HANDLE Handle;
 
 printf("get the handle\n");

  Handle = CreateFile(L"DSK1:",GENERIC_READ | GENERIC_WRITE,
  FILE_SHARE_READ | FILE_SHARE_WRITE,
  NULL,
  OPEN_EXISTING,
  FILE_ATTRIBUTE_NORMAL, NULL );

 if(Handle == INVALID_HANDLE_VALUE)
 {
  printf("not able get the handle.: %d", GetLastError());
 }

 SD_API_STATUS status;
 
 SD_PARSED_REGISTER_CID stcid = {0};
 SD_PARSED_REGISTER_CID *pRedCID = NULL;
 status = SDCardInfoQuery(Handle,
    SD_INFO_REGISTER_CID,
    pRedCID,
    sizeof(SD_PARSED_REGISTER_CID));

报错如下:sd_demoDlg.obj : error LNK2001: unresolved external symbol g_SDClientApiFunctions
Windows Mobile 5.0 Pocket PC SDK (ARMV4I)\Release\sd_demo.exe : fatal error LNK1120: 1 unresolved externals

请问如何处理
yeats
驱动牛犊
驱动牛犊
  • 注册日期2001-04-10
  • 最后登录2012-02-17
  • 粉丝0
  • 关注0
  • 积分142分
  • 威望86点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-03-22 15:58
Mobile里面很多底层开发用的的库和头文件都需要去 WinCE Platform Builder里面找,不知道本站的下载里面有没有
[url]http://oopslab.net[/url]
orangechl
驱动牛犊
驱动牛犊
  • 注册日期2007-03-12
  • 最后登录2007-05-02
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-03-23 15:53
在WinCE Platform Builder也没有,但是MSDN上说,要调用SDCardInfoQuery等等SD API的函数需要Sdcardlib.lib和sdcarddk.h
lowiq
驱动牛犊
驱动牛犊
  • 注册日期2007-03-13
  • 最后登录2009-08-19
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-03-23 19:49
如果你有装wince5.0的话,应该在public下就有的....
\PUBLIC\COMMON\OAK\DRIVERS\SDCARD\SDCARDLIB\
这个目录下生成了sdcardlibbase.lib
在\PUBLIC\COMMON\CESYSGEN\下会再link几个lib,最后生成一个sdcardlib.lib
至于sdcardddk.h在\PUBLIC\COMMON\DDK\INC\也有....
应该可以满足你的link需要....

话说回来,我是觉得这个函数是个ddk的driver函数,而且sdmemory.dll里面也没有导出这个函数....就这么直接用总感觉不妥....msdn里面写了这个函数,我也觉得有点奇怪..........

--------------------------
说的不好,大家不要骂我
orangechl
驱动牛犊
驱动牛犊
  • 注册日期2007-03-12
  • 最后登录2007-05-02
  • 粉丝0
  • 关注0
  • 积分120分
  • 威望13点
  • 贡献值0点
  • 好评度12点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-03-25 16:57
引用第3楼lowiq2007-03-23 19:49发表的“”:
如果你有装wince5.0的话,应该在public下就有的....
PUBLICCOMMONOAKDRIVERSSDCARDSDCARDLIB
这个目录下生成了sdcardlibbase.lib
在PUBLICCOMMONCESYSGEN下会再link几个lib,最后生成一个sdcardlib.lib
至于sdcardddk.h在PUBLICCOMMONDDKINC也有....
.......


怎么生成sdcardlibbase.lib?
怎么再link几个lib,最后生成一个sdcardlib.lib?哪几个lib?谢谢
游客

返回顶部