小编Leo*_*eon的帖子

Android Emulator:软输入和硬键盘输入

我想在我的android虚拟设备中启用软输入和硬键盘.我知道如何要么但不是BOTH.

之所以想为BOTH在同一时间:

  • 软输入:预览通过键盘减少屏幕时布局的大小调整

  • 硬键盘:显然是快速输入.

提前致谢.

android android-emulator android-layout

7
推荐指数
1
解决办法
1245
查看次数

64位MFC版本中的访问冲突异常

我试图将32位应用程序移植到64位.计算似乎正确运行,但我无法正确配置视图.我在W7 x64机器上使用VS2005内的MFC,C++和OpenGL,Intel 10.0.027编译器.

当崩溃发生时,我收到以下消息:"3DApp.exe中0xffffffff8043b1b6的第一次机会异常:0xC0000005:位置0xffffffff8043b1b6处的访问冲突",这是堆栈跟踪:

ffffffff8043b1b6()  
user32.dll!UserCallWinProcCheckWow()  + 0x11d bytes 
user32.dll!DispatchMessageWorker()  + 0x12a bytes   
3DApp.exe!AfxInternalPumpMessage()  Line 183    C++
3DApp.exe!CWinThread::PumpMessage()  Line 896   C++
3DApp.exe!CWinThread::Run()  Line 625 + 0x13 bytes  C++
Run Code Online (Sandbox Code Playgroud)

注意请问为什么UserCallWinProcCheckWow被调用,我认为Wow后缀仅用于在64位计算机上模拟32位应用程序

显然,某处64位指针被视为32位指针,但我不能指出发生的位置.我从microsoft加载了调试符号,它显示了调用堆栈的顶部.

任何帮助非常感谢.莱昂

编辑

调用DispatchMessage的代码是:

    if (pState->m_msgCur.message != WM_KICKIDLE && !AfxPreTranslateMessage(&(pState->m_msgCur)))
{
    ::TranslateMessage(&(pState->m_msgCur));
    ::DispatchMessage(&(pState->m_msgCur));
}
Run Code Online (Sandbox Code Playgroud)

在这个阶段,pState的指针似乎是64位.

pState-> m_msgCu的状态:

  • pState-> m_msgCur {msg = 0x00000022 wp = 0x0000000000000000 lp = 0x0000000000000000} tagMSG
  • hwnd 0x0000000000020416 {unused = 0x00000000} HWND__*message 0x00000022 unsigned int wParam 0x0000000000000000 unsigned __int64 lParam 0x0000000000000000 __int64 time 0x000f3967 unsigned long
  • pt …

c++ 64-bit mfc visual-c++

4
推荐指数
1
解决办法
4635
查看次数

Java在JFrame上拖放特定扩展名的文件

我想为我的应用程序实现DnD只接受某些扩展名的文件(例如wrl).如果文件将被接受,我想将光标更改为拖动光标,并在拖放错误扩展名的文件时恢复到正常光标.

我一直在http://docs.oracle.com/javase/tutorial/uiswing/dnd/toplevel.html上关注以下教程/示例

我所做的更改是在canImport函数中

    public boolean canImport(TransferHandler.TransferSupport support) 
    {
        if (!support.isDataFlavorSupported(DataFlavor.javaFileListFlavor)) 
        {
            return false;
        }

        Transferable t = support.getTransferable();

        try 
        {
          java.util.List<File> l = (java.util.List<File>)t.getTransferData(DataFlavor.javaFileListFlavor);
          if (l.size() != 1)
          {
            return false;
          }

          File f = l.get(0);

          String extension = f.getName().substring(f.getName().lastIndexOf("."));

          return extension.equalsIgnoreCase(".wrl");
        } 

        catch (UnsupportedFlavorException e) 
        {
            return false;
        } 
        catch (IOException e) 
        {
            return false;
        }
    }
Run Code Online (Sandbox Code Playgroud)

当我在不同的文件中拖动时,这种行为正确.但是,当我删除文件时,我得到以下异常

Exception in thread "AWT-EventQueue-0" java.awt.dnd.InvalidDnDOperationException: No drop current
    at sun.awt.dnd.SunDropTargetContextPeer.getTransferData(SunDropTargetContextPeer.java:227)
    at sun.awt.datatransfer.TransferableProxy.getTransferData(TransferableProxy.java:56)
    at java.awt.dnd.DropTargetContext$TransferableProxy.getTransferData(DropTargetContext.java:359)
    at appl.TopLevelTransferHandlerDemo$1.canImport(TopLevelTransferHandlerDemo.java:207)
    at javax.swing.TransferHandler$DropHandler.drop(TransferHandler.java:1454)
    at …
Run Code Online (Sandbox Code Playgroud)

java swing drag-and-drop jframe

4
推荐指数
1
解决办法
5268
查看次数

从chrome扩展注入的js访问全局js变量

我正在尝试创建一个具有侧面板的扩展.此侧面板将具有将根据主机页状态执行操作的按钮.

我按照这个例子注入侧面板,我能够连接onClick监听器上的按钮.但是,我无法访问全局js变量.在开发人员控制台中,在主机页面的范围内,我能够看到我所追求的变量(变量名称 - 配置).但当我在sidepanel(popup.html)的上下文中我得到以下错误 -
VM523:1未捕获ReferenceError:未定义配置.似乎popup.html也在一个单独的线程中运行.

如何访问我的按钮的onClick处理程序的全局js变量?

我的代码:

的manifest.json

{
    "manifest_version": 2,

    "name": "Hello World",
    "description": "This extension to test html injection",
    "version": "1.0",
    "content_scripts": [{
        "run_at": "document_end",
        "matches": [
            "https://*/*",
            "http://*/*"
        ],
        "js": ["content-script.js"]
    }],
    "browser_action": {
        "default_icon": "icon.png"
    },
    "background": {
        "scripts":["background.js"]
    },
    "permissions": [
        "activeTab"
    ],
    "web_accessible_resources": [
        "popup.html",
        "popup.js"
    ]
}
Run Code Online (Sandbox Code Playgroud)

background.js

chrome.browserAction.onClicked.addListener(function(){
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs){
        chrome.tabs.sendMessage(tabs[0].id,"toggle");
    })
});
Run Code Online (Sandbox Code Playgroud)

内容的script.js

chrome.runtime.onMessage.addListener(function(msg, sender){
    if(msg == "toggle"){
        toggle();
    }
})

var iframe = document.createElement('iframe'); …
Run Code Online (Sandbox Code Playgroud)

google-chrome-extension

4
推荐指数
1
解决办法
1581
查看次数