我试图将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) 我的网站上有以下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不等.
我有一个带有单个webrole的Azure项目,我试图在升级到Windows 8和Visual Studio 2012后正常运行.
问题在于任何静态内容,它会返回HTTP 500内部服务器错误,并显示以下文本:"由于发生了内部服务器错误,因此无法显示页面." 任何静态内容(图像和javascript)都会显示此错误,而动态内容可以正常运行(所有控制器操作都可以正常工作).
我们无法让IIS提供详细的错误消息.我们可以找到错误的唯一参考是访问日志,它将其显示为500子类型19错误.
我们尝试在IIS和IISExpress之间切换,发生同样的错误.我们已经尝试将所有"显示详细错误消息"选项添加到我们的web.config和IIS管理器中.HTTP和HTTPS端点上都发生相同的错误.
我的下一步应该是什么?
由于我的应用程序崩溃,我从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) 鉴于下面的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)
这是一个可以玩的实例.在工作版本中,只应选择该列表的第一个和第四个元素.
我正在尝试使用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>?
我无法使全局系统挂钩工作.我想尽可能早地在窗口移动时收到通知,并更改窗口大小.这意味着CBT挂钩HCBT_MOVESIZE不会切割它,它只会在窗口移动后发生.我想挂钩窗口的实际移动,并能够在移动过程中更改窗口大小.
钩子是从DLL设置的,回调函数在该DLL中.这就是我尝试过的.
WH_CALLWNDPROC.移动窗口时会发出警报(WM_MOVING从其他应用程序收到窗口),但我无法更改消息的内容.WH_CALLWNDPROCRET与...相同WH_CALLWNDPROC.HCBT_MOVESIZE.事件发生得很晚.WH_GETMESSAGE.永远不会收到WM_MOVE,WM_MOVING或WM_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会在程序退出时崩溃.
当用户登录我们的网站时,我想更改会话ID,但保留会话中的任何数据.我想这样做有两个原因:
这些可能看起来很矛盾,但如果你认真考虑的话,实际上并非如此.
问题如下; 要获取当前在会话中的数据,我必须打电话session_start().这意味着我session_id()之后无法调用来设置新的会话ID.任何想法如何传输会话数据和更改会话ID.
更新:我需要能够自己选择会话ID.session_regenerate_id()因此不会奏效.
是否有任何工具可以分析完整的xdebug转储文件夹?
当我们在生产服务器上短时间启用Xdebug分析时,我们总是会有数百个文件,这需要花费大量时间在WinCacheGrind或KCacheGrind中单独进行分析.我正在寻找一个可以聚合使用的工具,告诉我哪些功能占用了所有文件的总和.
我正在使用Caliburn.Micro开发应用程序.我需要同时在多个显示器上打开一组相同的窗口,我无法弄清楚如何干净利落地完成这项工作.
我的想法是这样的:
ChildViewModel/ ChildView包含我需要在多个屏幕上显示的内容.ParentViewModel继承自ConductorBase<ChildViewModel>.ParentViewModel被创建,它会创建所需数量的ChildViewModel和使用WindowManager.ShowWindow,以显示他们每个人.WindowManager实现负责将这些视图放在它们应该的位置.所有上述工作都有,但有一个例外:ParentView它显示在自己的窗口中.我怎样才能避免这种情况发生?做我想做的事情的规范方式是什么?
我想要做的是从单个导体进行多个窗口,而导体本身没有窗口.