HINSTANCE hInst = LoadLibrary(L"iTunesMobileDevice.dll");
if (hInst == NULL)
{
cout<<"LoadLibrary failed!"<<endl;
return -1;
}
typedef afc_error_t (*AFCDeviceInfoOpen)(struct afc_connection *, struct afc_dictionary **);
AFCDeviceInfoOpen test = NULL;
test = (AFCDeviceInfoOpen)GetProcAddress(hInst, "AFCDeviceInfoOpen");
struct afc_connection conn;
struct afc_dictionary info;
struct afc_dictionary* p = &info;
test(&conn,&p);test调用崩溃了啊,这个dll里面的函数到底该怎么调用呢?

解决方案 »

  1.   

    这个DLL依赖很多其他的 DLL,
    需要安装 iTunes(Mobile Device Support),
    然后把相关目录设置到环境变量中,才能成功加载这个 DLL。
    至于使用,网上有文件操作的 Demo,但是其他的就要自己去做逆向分析了。
      

  2.   

    恩呢,我调试加载的时候确实发现需要很多其它的dll,就把提示缺少的dll从 iTunes(Mobile Device Support)里面都拷贝过来了,现在能成功加载上这个dll,但是调用里面的函数的时候报错,不知道是调用的方式不对还是调用这些函数有先后顺序?可以给个网上Demo的链接吗?
      

  3.   

    http://theiphonewiki.com/wiki/MobileDevice_Library
    http://stackoverflow.com/questions/6248225/manage-files-on-idevices
      

  4.   

    另外,关于接口使用,有很多其他语言的 Demo,比如:Python,可以翻译到 C++。
      

  5.   

    typedef mach_error_t (*AMDeviceStartService)(struct am_device *device, void* service_name, afc_connection **handle, unsigned int *unknown);
    进行到这里的时候,第二个参数需要一个从CFString转过来的void*类型,我用的vs2010,没有NSTR和CFString的头文件,这第二个参数该怎么写啊?
      

  6.   

    struct __CFString 

    DWORD unk0; 
    BYTE sign[4]; 
    BYTE length; 
    char string[1]; 
    void Init() 
    { unk0 = 0; 
    sign[0] = 0x8c; 
    sign[1] = 07; 
    sign[2] = 01; 
    sign[3] = 0; 
    }
    operator LPSTR (){ return string; } 
    operator LPCSTR ()const{ return string; } 
    }; 这个结构体该怎么用啊?
      

  7.   

    另外,装一个 QuickTime 的 SDK,并设置下相关头文件与库文件路径。这个链接:https://code.google.com/p/t-pot/
    是 Win 上的一个 Demo,是 Total Commander 的一个插件。
      

  8.   

    不会用这个啊,我用的vs2010,现在就是卡在这里了AMDeviceStartService第二个参数需要一个CFString,例子程序里都是直接用的CFSTR这个宏,然后这个宏定义的实现在CFString.c里面,CFString.c里面又包含了我没有的头文件这样找下去需要的文件越来越多啊到底这第二个参数该怎么写啊?
      

  9.   

    我装了这个了,这个里面好像有corefoundation相关的,这个sdk怎么用呢?
      

  10.   


    CoreFoundation.h 在VS的头文件查找路径中吗?
      

  11.   


    CoreFoundation.h 在VS的头文件查找路径中吗?我把corefoundation.h加进去了,已经可以用了。我想完成iphone的备份。现在可以读到ipad里面的用户系统的目录,但是系统的目录却读不到不知道为什么,用itnues查看用户目录和系统目录是分开的,ipad已经越狱,是在读取目录的时候要设置什么参数吗?
      

  12.   

    上面说错了,想做ipad的备份,然后用的是itool查看ipad的目录,ipad把目录分成了两部分,一部分是用户系统,一部分是系统目录,我的代码可以读出用户系统的目录,系统目录的内容却读不到,求指导。
      

  13.   


    CoreFoundation.h 在VS的头文件查找路径中吗?AMSArchiveBackup这个函数没有原型,怎么调用啊?
      

  14.   

    我现在也在研究这块东西。我也装一个 QuickTime的SDK,但怀疑里面提供的API有问题:我发现CFSTR("123")竟然返回空指针,而且调用CFString其他API也返回异常。请问你们是在什么平台上用什么样的开发环境?有没有遇到类似问题?