我有一个 Windows Phone 8 项目和另一个用 C++ 编写的项目;两者都在同一个解决方案中。C++ 项目是 WP8 项目中使用的动态库,它被配置为.winmd
在文件之上生成一个 Windows Metada 文件 ( ) .dll
。
在 WP8 项目中添加 C++ 项目作为项目参考时,一切正常。
但是,我想直接引用二进制文件而不是项目,所以我尝试引用它.dll
本身,但 VS2012 不会让我(我完全理解,因为我理解的库是不受管理的)。添加.winmd
文件而不是工作,我的意思是它编译时没有警告/错误;但它在运行时崩溃(我得到一个TargetInvocationException
因为找不到 C++ 库的“实际”代码而引发的问题)。
添加.winmd
文件时,我确保.dll
文件在它旁边。将这两个文件放在bin
WP8 项目的目录中也不起作用。
我在互联网上找不到任何线索,如果您能给我一些线索,我将不胜感激,欢迎任何提示!
这是我正在尝试设置的简单架构的架构:
这是引发的异常的堆栈跟踪:
at System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD)
at Sqlite.Sqlite3.sqlite3_open_v2(String filename, Database& db, Int32 flags, String zVfs)
at SQLite.SQLite3.Open(String filename, Database& db, Int32 flags, IntPtr zVfs)
at SQLite.SQLiteConnection..ctor(String databasePath, SQLiteOpenFlags openFlags, Boolean storeDateTimeAsTicks)
at SQLite.SQLiteConnection..ctor(String databasePath, Boolean storeDateTimeAsTicks)
at WP8ClassLibrary.SomeManager..ctor(String databasePath)
at WP8App.SomeViewModel..ctor()
at WP8App.MainPage..ctor()