我在eclipse上有两个项目,一个生成一个,另一个是使用它的Android应用程序我正在尝试使用本指南调试本机代码.
当我运行本机调试器时,我得到:
Error in final launch sequence
Failed to execute MI command:
-gdb-set target-async off
Error message from debugger back end:
Cannot change this setting while the inferior is running.
Cannot change this setting while the inferior is running.
Run Code Online (Sandbox Code Playgroud) 我有两个Android项目:一个是库,另一个是使用此库的常规应用程序.我的目标是从Android应用程序调试共享库.我按照这个指南:
http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/
我评论了最后一行
##$GDBCLIENT -x `native_path $GDBSETUP`
Run Code Online (Sandbox Code Playgroud)
但是以下一行
##cp -f $GDBSETUP_INIT $GDBSETUP
Run Code Online (Sandbox Code Playgroud)
抱怨信息:
it cannot stat ./libs/armeabi-v7a/gdb.setup
所以我评论了它,因为我认为Eclipse会为我上传它.除此之外,我确保:
在Android.mk中我放了LOCAL_CFLAGS:= -Wall -g
我在应用程序的libs库中获取.so
我在应用程序中使debuggable为true
修改了gdb2.setup路径,以便使用solib-search-path ./libs/armeabi-v7a/引用.so,并使用目录引用源代码
在单步执行System.LoadLibrary指令后,我执行了ndk-build-eclipse并且没有产生错误,当我开始本地调试时,我得到了:
无法访问地址0x1处的内存
在Cygwin上我得到了:
从主机0.0.0.0远程调试
这是运行ndk-gdb-eclipse命令的输出:
$ ./ndk-gdb-eclipse --adb=/cygdrive/c/Utilities/adt-bundle-windows/adt-bundle-windows/sdk/platform-tools/adb --project=/cygdrive/c/Projects/IDSmart/IDSmartApp/IDSmart --force --port=5039 --verbose
Android NDK installation path: /cygdrive/c/Utilities/android-ndk-r8c-windows/android-ndk-r8c/.
Using specific adb command: /cygdrive/c/Utilities/adt-bundle-windows/adt-bundle-windows/sdk/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.31
Using ADB flags:
Using specified project path: /cygdrive/c/Projects/IDSmart/IDSmartApp/IDSmart
Found package name: uk.co.idscan.idsmart
ABIs targetted by application: armeabi-v7a
Device API Level: 15
Device CPU ABIs: armeabi-v7a …Run Code Online (Sandbox Code Playgroud) 我有一个32 com库,并希望通过64位应用程序使用它的功能,我已经在互联网上搜索并设法得到这个解决方法
HKey_Classes_Root\Wow6432Node\CLSID\[GUID]REG_SZ (string)值.名称应为AppID,数据应与您刚刚搜索的COM对象GUID相同HKey_Classes_Root\Wow6432Node\AppID\REG_SZ (string)值,并将其命名为DllSurrogate.将值保留为空HKey_Local_Machine\Software\Classes\AppID\但它不适用于Windows 7 64位,主要问题是当我执行第6步时我发现密钥已经存在,任何机构都知道为什么?或者我怎样才能克服它?
这里的文件非常简短
Android平台4.0.4 Opencv 2.4.3
我试图从相机获取快照,然后使用opencv处理它!但有时(按随机顺序)我得到以下例外
12-19 18:54:33.659: E/AndroidRuntime(16625): FATAL EXCEPTION: main
12-19 18:54:33.659: E/AndroidRuntime(16625): java.lang.RuntimeException: Unable to resume activity {com.example.superemr/com.example.superemr.MainActivity}: java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=11, result=-1, data=Intent { act=inline-data dat=file:///mnt/sdcard/Pictures/IDSMART/IDS-1607435583.jpg typ=image/jpeg (has extras) }} to activity {com.example.superemr/com.example.superemr.MainActivity}: java.lang.NullPointerException
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2464)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2492)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1997)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3371)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread.access$700(ActivityThread.java:127)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1162)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.os.Handler.dispatchMessage(Handler.java:99)
12-19 18:54:33.659: E/AndroidRuntime(16625): at android.os.Looper.loop(Looper.java:137)
12-19 18:54:33.659: …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序并在项目中使用密集的c ++代码,首先,我将c ++源代码放在项目中,并使用以下指南在Android应用程序中具有本机调试的NDK功能.
http://tools.android.com/recent/usingthendkplugin
但是在开发的弱点之后,我决定在独立项目中分离Native代码并使用Android应用程序中的输出SO.
我的问题我如何调试SO库,这是Android应用程序中单独项目的结果?
我想使用Pinvoke技术在本地库中使用.net位图,本机函数具有以下原型,
int cropImage( bool aBlocking,Gdiplus::Bitmap *aInputImage, )
Run Code Online (Sandbox Code Playgroud)
我打了下面的pinvoke
public extern int cropImage( bool blocking , Intptr bitmap )
Run Code Online (Sandbox Code Playgroud)
而我这样称呼它
System.Drawing.Bitmap b = new Syste.Drawing.Bitmap("Amour.jpg");
cropImage(true,b.getHitmap());
Run Code Online (Sandbox Code Playgroud)
但它不起作用,你有什么建议?
我想实现一个跨平台的多线程程序并读取std确实支持通过std :: thread类进行多线程,但我不确定MSVC 11是否支持此页面 http://blogs.msdn.com/b/vcblog/存档/ 2011/09/12/10209291.aspx
关于Concurreny Memory Model的说法
内存模型:N2429使核心语言识别出多线程的存在,但似乎没有任何编译器实现(至少已经支持多线程的实现).所以这是表中的N/A.
但同时线程头确实包含在Visual Studio 2012中
所以任何人都可以帮我理解MSVC11中支持std :: thread的上下文
我有一个使用文档/视图架构的常规 MFC 应用程序。当应用程序启动时,它会自动创建一个空文档的视图。我想在启动时禁用此自动视图,并仅在用户单击“文件”菜单中的“新建文档”时显示视图。
有什么办法可以做到吗?
CMultiDocTemplate* template = new CMultiDocTemplate(IDR_DorlionTYPE,
RUNTIME_CLASS(CDocument),
RUNTIME_CLASS(CChildFrame), // custom MDI child frame
RUNTIME_CLASS(CView));
if (!CView)
return FALSE;
Run Code Online (Sandbox Code Playgroud)