小编Veg*_*sen的帖子

将结构数组转换为IntPtr

我试图将RECT结构的数组(下面给出)转换为IntPtr,因此我可以使用PostMessage将指针发送到另一个应用程序.

[StructLayout(LayoutKind.Sequential)]
public struct RECT
{
    public int Left;
    public int Top;
    public int Right;
    public int Bottom;

    // lots of functions snipped here
}

// so we have something to send, in reality I have real data here
// also, the length of the array is not constant
RECT[] foo = new RECT[4]; 
IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(foo[0]) * 4);
Marshal.StructureToPtr(foo, ptr, true); // -- FAILS
Run Code Online (Sandbox Code Playgroud)

这在最后一行给出了ArgumentException("指定的结构必须是blittable或具有布局信息.").我需要以某种方式使用PostMessage将这个RECT数组转移到另一个应用程序,所以我真的需要一个指向这些数据的指针.

我有什么选择?

更新:这似乎工作:

 IntPtr result = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(Win32.RECT)) * foo.Length);
 IntPtr c = new …
Run Code Online (Sandbox Code Playgroud)

.net c# marshalling

11
推荐指数
1
解决办法
2万
查看次数

使用jQuery对<div>元素进行排序

我的网站上有以下HTML代码:

<div class="groups">
  <div class="group">
    Group 1 priority:
    <select>
      <option value="1.0">1</option>
      <option value="2.0" selected="selected">2</option>
      <option value="3.0">3</option>
    </select>
  </div>
  <div class="group">
    Group 2 priority:
    <select>
      <option value="1.0">1</option>
      <option value="2.0">2</option>
      <option value="3.0" selected="selected">3</option>
    </select>
  </div>
  <div class="group">
    Group 3 priority:
    <select>
      <option value="1.0" selected="selected">1</option>
      <option value="2.0">2</option>
      <option value="3.0">3</option>
    </select>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法来根据下拉列表中选择的内容,使用jQuery对这些组在浏览器中显示的顺序进行排序.当用户在任何下拉列表中或页面加载中选择新值时,它应该求助.

这个问题最简单的方法是什么?

我可以使用jQuery UI,如果可以以任何方式使用可排序的东西.我无法找到使用它的方法.

更新:<div class ="group">中还有其他数据,无论它们在何处移动,都应遵循下拉列表.组的数量从0到20不等.

javascript sorting jquery

9
推荐指数
1
解决办法
2万
查看次数

Azure项目中的静态文件的IIS错误500.19

我有一个带有单个webrole的Azure项目,我试图在升级到Windows 8和Visual Studio 2012后正常运行.

问题在于任何静态内容,它会返回HTTP 500内部服务器错误,并显示以下文本:"由于发生了内部服务器错误,因此无法显示页面." 任何静态内容(图像和javascript)都会显示此错误,而动态内容可以正常运行(所有控制器操作都可以正常工作).

我们无法让IIS提供详细的错误消息.我们可以找到错误的唯一参考是访问日志,它将其显示为500子类型19错误.

我们尝试在IIS和IISExpress之间切换,发生同样的错误.我们已经尝试将所有"显示详细错误消息"选项添加到我们的web.config和IIS管理器中.HTTP和HTTPS端点上都发生相同的错误.

我的下一步应该是什么?

iis azure

9
推荐指数
2
解决办法
2514
查看次数

minidump中的.ni.dll和.ni.exe文件是什么?

由于我的应用程序崩溃,我从Windows应用商店应用提交流程(由审阅者发送)中获得了一个小型转储.我在加载我的应用程序的符号时遇到问题,因为错误发生在里面App.ni.exe,我不知道从哪里来的文件.

我的应用程序只有一个App.exe(和一些DLL),但转储持续引用.ni.dll.ni.exe.这些文件在我.appx.appxsym文件中找不到.

我的应用程序是为每个特定平台(x86,x64和ARM)构建的.它是在stackdump中崩溃的x64版本.

我目前尝试使用windbg:

符号路径:

Srv*C:\Users\Vegard\Appdata\local\temp\SymbolCache*http://msdl.microsoft.com/download/symbols`
Run Code Online (Sandbox Code Playgroud)

Windbg尝试:

0:006> !analyze -v
*******************************************************************************
*                                                                             *
*                        Exception Analysis                                   *
*                                                                             *
*******************************************************************************

Unable to load image Newtonsoft.Json.ni.dll, Win32 error 0n2
*** WARNING: Unable to verify checksum for Newtonsoft.Json.ni.dll
*** ERROR: Module load completed but symbols could not be loaded for Newtonsoft.Json.ni.dll
Unable to load image App.ni.exe, Win32 error 0n2
*** WARNING: Unable to verify checksum for App.ni.exe
*** ERROR: Module …
Run Code Online (Sandbox Code Playgroud)

c# windbg windows-store windows-store-apps

9
推荐指数
1
解决办法
8908
查看次数

jQuery:has(.something:contains())不受支持?

鉴于下面的HTML,我试图使用jQuery来匹配所有具有类"foo"的跨度的列表项,并且该跨度应该包含文本"相关".

<ul> 
  <li>Some text <span class="foo">relevant</span></li> 
  <li>Some more text <span class="foo">not</span> <span class="bar">relevant</span></li> 
  <li>Even more <span class="foo">not so either</span></li> 
  <li>Blablabla <span class="foo">relevant</span> <span class="bar">blabla</span></li> 
  <li>No foo here <span class="bar">relevant</span></li> 
</ul>
Run Code Online (Sandbox Code Playgroud)

请注意,还有一些带有"bar"类的跨度,并且还有"相关"的文本,不应包括在内.

我对选择器的尝试:

ul li:has(.foo:contains('relevant"))
Run Code Online (Sandbox Code Playgroud)

这不起作用.下一个示例选择了一些内容,但未考虑列表中有多个span:

ul li:has(span:contains('relevant"))
Run Code Online (Sandbox Code Playgroud)

这是一个可以玩的实例.在工作版本中,只应选择该列表的第一个和第四个元素.

jquery jquery-selectors

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

使用ApplicationSettingsBase存储通用List <CustomObject>

我正在尝试使用ApplicationSettingsBase保存List <Foo>,但即使列表已填充,它也只输出以下内容:

<setting name="Foobar" serializeAs="Xml">
    <value />
</setting>
Run Code Online (Sandbox Code Playgroud)

Foo定义如下:

[Serializable()]
public class Foo
{
    public String Name;
    public Keys Key1;
    public Keys Key2;

    public String MashupString
    {
        get
        {
            return Key1 + " " + Key2;
        }
    }

    public override string ToString()
    {
        return Name;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何启用ApplicationSettingsBase来存储List <Foo>?

.net c# serialization applicationsettingsbase

6
推荐指数
1
解决办法
5434
查看次数

全球拦截窗口移动

我无法使全局系统挂钩工作.我想尽可能早地在窗口移动时收到通知,并更改窗口大小.这意味着CBT挂钩HCBT_MOVESIZE不会切割它,它只会在窗口移动后发生.我想挂钩窗口的实际移动,并能够在移动过程中更改窗口大小.

钩子是从DLL设置的,回调函数在该DLL中.这就是我尝试过的.

  • WH_CALLWNDPROC.移动窗口时会发出警报(WM_MOVING从其他应用程序收到窗口),但我无法更改消息的内容.
  • WH_CALLWNDPROCRET与...相同WH_CALLWNDPROC.
  • CBT挂钩HCBT_MOVESIZE.事件发生得很晚.
  • WH_GETMESSAGE.永远不会收到WM_MOVE,WM_MOVINGWM_WINDOWPOSCHANGING.这个钩子允许我改变消息.

更新:Windows事件挂钩似乎允许我捕获它:

hWinEventHook = SetWinEventHook(EVENT_SYSTEM_MOVESIZESTART,    
    EVENT_SYSTEM_MOVESIZEEND, NULL, WinEventProc, 
    0, 0, WINEVENT_OUTOFCONTEXT | WINEVENT_SKIPOWNPROCESS);
Run Code Online (Sandbox Code Playgroud)

但是,这会产生一个不同的问题:更改窗口大小使用SetWindowPos()不起作用(它会改变大小,但会立即更改回以前的大小),即使我使用了SWP_NOSENDCHANGING.想法?

更新2:子类似乎可行,但是每个程序运行后Visual Studio崩溃(许多其他窗口也是如此).如果我放置断点并遍历"unsubclassing",它会很好用,但是当我让程序自行运行时却不行.想法?

我有一个CBT钩子(它来自前面),每当HCBT_ACTIVATE发送一个新窗口,我删除任何以前的子类使用SetWindowLongPtr()(这也必须在64位上运行),然后子类化新窗口.如果我在任何地方放置断点,并在断开时立即恢复会话,一切正常.但是,当我没有任何断点时,Visual Studio会在程序退出时崩溃.

c++ winapi

6
推荐指数
1
解决办法
2319
查看次数

更改会话ID并保留数据?

当用户登录我们的网站时,我想更改会话ID,但保留会话中的任何数据.我想这样做有两个原因:

  1. 防止用户帐户同时在多个地方使用(因为如果两个人使用同一个帐户,一个人的行为将破坏另一个人的行为).
  2. 让用户继续他/她在另一台计算机上所做的事情(例如,从家用计算机移动到工作).

这些可能看起来很矛盾,但如果你认真考虑的话,实际上并非如此.

问题如下; 要获取当前在会话中的数据,我必须打电话session_start().这意味着我session_id()之后无法调用来设置新的会话ID.任何想法如何传输会话数据和更改会话ID.

更新:我需要能够自己选择会话ID.session_regenerate_id()因此不会奏效.

php session

6
推荐指数
1
解决办法
8867
查看次数

用于分析聚合的cachegrind文件的工具?

是否有任何工具可以分析完整的xdebug转储文件夹?

当我们在生产服务器上短时间启用Xdebug分析时,我们总是会有数百个文件,这需要花费大量时间在WinCacheGrind或KCacheGrind中单独进行分析.我正在寻找一个可以聚合使用的工具,告诉我哪些功能占用了所有文件的总和.

php profiling xdebug kcachegrind

6
推荐指数
1
解决办法
850
查看次数

在Caliburn Micro中进行多个窗口的正确方法?

我正在使用Caliburn.Micro开发应用程序.我需要同时在多个显示器上打开一组相同的窗口,我无法弄清楚如何干净利落地完成这项工作.

我的想法是这样的:

  • ChildViewModel/ ChildView包含我需要在多个屏幕上显示的内容.
  • ParentViewModel继承自ConductorBase<ChildViewModel>.
  • ParentViewModel被创建,它会创建所需数量的ChildViewModel和使用WindowManager.ShowWindow,以显示他们每个人.
  • 我的WindowManager实现负责将这些视图放在它们应该的位置.

所有上述工作都有,但有一个例外:ParentView它显示在自己的窗口中.我怎样才能避免这种情况发生?做我想做的事情的规范方式是什么?

我想要做的是从单个导体进行多个窗口,而导体本身没有窗口.

c# wpf caliburn.micro

6
推荐指数
1
解决办法
1521
查看次数