none
如何在windows phone 上进行底层C/C++开发?如何购买权限 RRS feed

答案

全部回复

  • 您好,

    在新的windows phone 8中支援C/C++來開發APP

    2012年11月7日 3:07
  • 我想把opencv库移植到wp8上。

    于是我首先在vs2012 express for windows phone 的C++ Runtime Component工程里搭建好了openCV2.4.2,然后写了一小段利用openCV库的C++代码。最后在phone application工程中进行调用。

    问题来了:分别build Component工程和phone application工程时均没有报错,可是在运行模拟器的时候catch到的:Error:0x8007007e - the specified module could not be found.

    请问这是哪里出了问题?该怎样解决?还是说这种调用图像视觉库是不行的,有其他方法么?

    谢谢

    2012年11月7日 3:21
  • 你好,

    你是说使用了一个native的dll库? 这样的话请确保你在Windows Phone application目录下能够找到那个native dll


    Allen Chen [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月8日 4:56
  • 我用了一个win32的dll,已经在wp8的工程下面放了dll,但是运行时就是找不到

    另外问一下,这个win32的dll必须是静态的吗?

    2012年11月9日 5:44
  • 动态dll是要放在Windows Phone application目录下的,不是那个Component目录下.

    Allen Chen [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月9日 5:47
  • 是啊,我是放在Windows Phone application目录下了


    2012年11月9日 6:14
  • 你好,

    >然后写了一小段利用openCV库的C++代码

    这个有依赖其他的dll吗?用dependency walker检查下看看.依赖的dll也放到Windows Phone application目录下面. 你可以先测试一下自己写一个简单的dll调用.我测试过是可以跑的.


    Allen Chen [MSFT]
    MSDN Community Support | Feedback to us

    2012年11月9日 8:33
  • 我自己写过dll,加载,没有问题,也可以跑。我自己写dll的过程是按照http://www.devdiv.com/Windows_Phone-WP8%E6%96%B0%E7%89%B9%E6%80%A7%E3%80%908%E3%80%91Windows_Phone_8%E7%95%8C%E9%9D%A2%E8%B0%83%E7%94%A8%E4%B8%80%E8%88%ACDLL%EF%BC%8C%E9%9D%9ERuntime_Component%E6%96%B9%E6%B3%95-thread-135252-1-1.html 和 http://www.devdiv.com/Windows_Phone-WP8%E6%96%B0%E7%89%B9%E6%80%A7%E3%80%907%E3%80%91Metro_app%EF%BC%88%E6%89%98%E7%AE%A1%E4%BB%A3%E7%A0%81%E7%95%8C%E9%9D%A2%EF%BC%89%E4%B8%AD%E8%B0%83%E7%94%A8C___Native_DLL-thread-134611-1-1.html 进行的。

    请问你写的那个可以跑的加入opencv了么?

    我用dependency walker看过了,已经在Windows Phone application目录下面加上了缺失的msvcp100d.dll 和 muvcr100d.dll,可还是不行。

    再请问下,自己写dll时,按照上面的教程,需要在Component工程的属性里添加.lib、.h文件和lib的位置,可是如果我直接利用第三方的dll,但这种第三方的dll并没有.lib和.h文件,除了要把dll放到Windows Phone application目录下面,Component工程的属性里应该如何设置?
    2012年11月15日 8:37
  • 我现在的做法是:

    1.新建wp8项目,把opencv头文件文件夹和lib文件夹放到了项目目录下。

    2.新建component工程,将opencv头文件文件夹位置添加到了工程属VC++目录包含目录中,将lib文件夹中的.lib文件分别添加到了工程属性链接器输入的附加依赖项中,将lib文件夹的位置添加到了工程属性链接器常规的附加库目录里。

    3.在.cpp文件里写了利用opencv的函数,编译生成.winmd文件

    4.在wp8工程中引用.winmd文件文件,并在工程目录下添加opencv的dll和缺失的msvcp100d.dll和msvcr100d.dll、tbb.dll和tbb_Debug.dll,并将所有的dll属性改为总是复制和内容,然后在.cs文件里调用component的那个函数

    5.运行仿真,依旧报错。

    麻烦您看看我这个流程哪里有问题,为什么运行时component工程还是加载不到dll,如何调试能知道少加载的是哪个dll?用dependency walker查看wp8工程下的各个dll,是不缺少的



    • 已编辑 BUPT_BNRC 2012年11月15日 9:41 补充
    2012年11月15日 9:36
  • 你好,

    请用dependency walker再看下msvcp100d.dll 和 muvcr100d.dll.这些应该都依赖桌面版本的kernal32.dll的.而且kernal32.dll依赖其他许多操作系统相关的dll,所以很可能本身这个类库就不能直接在Windows Phone平台上使用. 关于你的第二个问题可以参考http://adrianhenke.wordpress.com/2008/12/05/create-lib-file-from-dll/


    Allen Chen [MSFT]
    MSDN Community Support | Feedback to us

    • 已标记为答案 BUPT_BNRC 2012年11月15日 10:00
    2012年11月15日 9:44