我遇到过一种我知道代码的情况
我在Visual Studio 2008中创建了一个MFC应用程序,它生成一个托盘图标和一些通知.我已经阅读过,我可以使用与NOTIFYICONDATAWindows XP 不同的结构,通过设置cbSize结构的属性来初始化它.我还读过,我可以LoadIconMetric在Windows Vista中使用加载我的通知图标,而在Windows XP中,我无法使用该功能,我必须使用LoadIcon.
在我的应用程序中,我设置了以下内容:
#ifndef WINVER
#define WINVER 0x0600 // Vista
#endif
#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0600 // Vista
#end#if
#ifndef _WIN32_WINDOWS
#define _WIN32_WINDOWS 0x0600 // Vista
#endif
#ifndef _WIN32_IE
#define _WIN32_IE 0x0700
#endif
Run Code Online (Sandbox Code Playgroud)
我正在Visual Studio 2008中的Windows 7 x64计算机上编译和链接Windows 7 SDK.我对WindowsVista或更高版本的测试看起来像这样(直接来自MSDN):
static BOOL IsWinVistaOrLater()
{
// Initialize the OSVERSIONINFOEX structure.
OSVERSIONINFOEX osvi;
ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
osvi.dwMajorVersion = 6;
osvi.dwMinorVersion = 1;
// Initialize the condition …Run Code Online (Sandbox Code Playgroud) 我刚刚问了一个关于使用正则表达式允许数字介于-90.0和+90.0之间的问题.我得到了一些关于如何实现正则表达式的答案,但大多数答案还提到,如果不使用正则表达式或使用正则表达式会更好地处理它会有点过分.那么如何决定何时使用正则表达式以及何时不使用正则表达式.是否有可以遵循的检查清单?
我正在为可排序的表编写代码,其中单击标题中的链接会更改生成一组搜索结果时执行的ORDER BY(如果没有有效的顺序,则导致查询不按顺序运行然后按照数据库返回的顺序返回结果.这是设计的).代码是在我的雇主提供的框架内编写的.
要验证查询的ORDER BY部分,我通过以下验证函数运行输入.
<?php
function sortMode ($name)
{
$mode = '';
switch ($name)
{
case 'resnum' : $mode = 'b_resnum'; break;
case 'state' : $mode = 'st_id'; break;
case 'name' : $mode = 'lastname, firstname'; break;
case 'phone' : $mode = 'phone'; break;
case 'email' : $mode = 'email'; break;
case 'opened' : $mode = 'cs_created'; break;
default : $mode = ''; break;
}
return ($mode);
}
?>
Run Code Online (Sandbox Code Playgroud)
在测试中,我发现如果没有提供参数,那么排序顺序将是resnum.经过一些实验,我发现框架中内置的过滤会导致请求未初始化的变量(如未设置的GET参数)返回整数0.如果上面的代码被输入一个0整数作为其输入,它将始终跟随第一个可用的执行路径.
作为一个实验,我尝试在switch语句中重新排列case的顺序,并发现如果该函数传递0,那么顶部的任何内容都将被执行.
该问题的解决方案是使用switch (strval($name))所以特定问题得到解决,但现在我很好奇PHP开关语句的一般行为.我亲眼目睹了PHP的正确行为吗?PHP中是否存在导致此问题的错误,或者我在我不知道的代码中出错?
我正在为Google App Engine开发Python应用程序.
当我从appspot运行已部署的应用程序时,它工作正常,除非我第一次访问它,比如5分钟.问题是,如果我暂时没有访问该应用程序,页面将显示该消息
状态:200 OK内容类型:text/html; charset = utf-8 Cache-Control:no-cache Expires:Fri,01 Jan 1990 00:00:00 GMT Content-Length:15493
前置于顶部.通常,在显示页面的其余部分之前,该文本会显示一两秒钟.
如果我检查服务器日志,我会看到信息消息
此请求导致为您的应用程序启动新进程,从而导致您的应用程序代码首次加载.
刷新页面可以轻松解决问题.在这种情况下,页面正确传递,并适用于后续刷新.但如果我等了5分钟,问题又回来了.
有关如何排除故障的任何解释或建议?我有一个模糊的概念,即当GAE在不活动后"唤醒"时,会出现不正确的初始化.或者也许前一次活动的标题在某处缓冲区中挥之不去.但是self.response.out在调用请求处理程序时似乎是空的.
我知道段落和标题是块元素,所以这就是为什么我有一个包裹时我的脑海里围绕什么是做到这一点的无障碍明智的最佳途径.
比方说我有这样的副本:
*这是标题.*这是一段,等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等等.
我的HTML和CSS如何正确显示?
我在这里重新绘制数字时遇到问题.我允许用户在时间刻度(x轴)中指定单位,然后重新计算并调用此函数plots().我希望情节简单地更新,而不是在图中附加另一个情节.
def plots():
global vlgaBuffSorted
cntr()
result = collections.defaultdict(list)
for d in vlgaBuffSorted:
result[d['event']].append(d)
result_list = result.values()
f = Figure()
graph1 = f.add_subplot(211)
graph2 = f.add_subplot(212,sharex=graph1)
for item in result_list:
tL = []
vgsL = []
vdsL = []
isubL = []
for dict in item:
tL.append(dict['time'])
vgsL.append(dict['vgs'])
vdsL.append(dict['vds'])
isubL.append(dict['isub'])
graph1.plot(tL,vdsL,'bo',label='a')
graph1.plot(tL,vgsL,'rp',label='b')
graph2.plot(tL,isubL,'b-',label='c')
plotCanvas = FigureCanvasTkAgg(f, pltFrame)
toolbar = NavigationToolbar2TkAgg(plotCanvas, pltFrame)
toolbar.pack(side=BOTTOM)
plotCanvas.get_tk_widget().pack(side=TOP)
Run Code Online (Sandbox Code Playgroud) 它们非常受欢迎,但我从来没有使用它们的"球".
基本上,我永远不知道他们会在哪里停下来.他们只是执行下一行代码吗?
如果我做:
for(int i = 0; i<10; i++)
if(i % 2 == 0)
//this is included in the for loop and the if statement
function();
// is this?
function2();
// where does it stop?
function3();
Run Code Online (Sandbox Code Playgroud)
怎么包括else语句?
for(int i = 0; i<10; i++)
if(i % 2 == 0)
//this is included in the for loop and the if statement
function();
else
// is this run as part of the for loop? even though theres a semi colon before it?
function2(); …Run Code Online (Sandbox Code Playgroud) 我知道的Soundpool旨在处理小FX一样的声音,我确信,我想一定顺序播放一个接一个足够小我4个声音剪辑.
我使用ogg质量0和剪辑是35kb,14kb,21kb和23kb总计92kb的压缩音频.我不知道如何估计未压缩的大小,但它应该不是很多,对吧?
因此,当我按顺序播放4个声音时,它在前9次(9个序列x 4个声音)中运行良好,但开始在其中一个声音的9个序列上引起内存问题.当我开始看到错误时,始终是序列9.
处理这个问题的最佳方法是什么?我有一些想法:
1)压缩声音更多(ogg质量-1和单声道而不是立体声)
2)使用SoundPool.load和SoundPool.unload不断地卸载和加载声音
3)从时间发布并重新创建soundPool实例时间
还有什么我可以做的吗?令人尴尬的是,android api无法处理如此小的剪辑.我想知道人们如何制作具有很多音效的游戏......
错误看起来像这样:
ERROR/AudioFlinger(35):没有足够的内存用于AudioTrack大小= 1048640 DEBUG/MemoryDealer(35):AudioTrack(0x25018,size = 1048576)
我遇到了一些麻烦,配置java3D以适应我的IDE环境......
我已经下载了j3d-1_5_2-linux-i586.zip,并解压缩了j3dcore.jar,j3dutils.jar,vecmath.jar,libj3dcore-ogl.so,libj3dcore-ogl-cg.so并将它们全部添加为"Referenced Libraries"我的项目文件夹.这摆脱了我得到的任何编译警告但是当我编译并运行应用程序时,我得到以下异常!
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-ogl in java.library.path
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1681)
at java.lang.Runtime.loadLibrary0(Runtime.java:840)
at java.lang.System.loadLibrary(System.java:1047)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:231)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:200)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:157)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:987)
at javax.media.j3d.VirtualUniverse.<clinit>(VirtualUniverse.java:299)
at Hello3d.<init>(Hello3d.java:10)
at Hello3d.main(Hello3d.java:18)
Run Code Online (Sandbox Code Playgroud)
这里也快速浏览一下源代码.注意:一旦将Eclipse添加为Referenced Libraries,Eclipse就会使用Ctrl + Shift + O自动拉入导入库路径.
import javax.media.j3d.BranchGroup;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.SimpleUniverse;
public class Hello3d {
public Hello3d(){
SimpleUniverse universe = new SimpleUniverse();
BranchGroup group = new BranchGroup();
group.addChild(new ColorCube(0.3));
universe.getViewingPlatform().setNominalViewingTransform();
universe.addBranchGraph(group);
}
public static void main(String[] args){
new Hello3d();
}
}
Run Code Online (Sandbox Code Playgroud)
我不确定我对'j3dcore-ogl'有什么意义但是我坚持这一点.如何在系统环境或IDE项目中安装java3D?请帮忙.
IDE:Eclipse SDK …
我有一大系列栅格数据集,代表了几十年来的月降雨量.我用Python编写了一个循环遍历每个栅格的脚本并执行以下操作:
该脚本只是一个由循环语句包围的数组代数方程列表.
如果我只是在我的数据的一小部分(比如说20年的价值)上运行脚本,那么一切都运行良好,但如果我尝试处理整个数据,我会得到一个MemoryError.该错误没有提供任何更多的信息(除了它突出显示Python放弃的代码中的行).
不幸的是,我不能轻易地处理我的数据 - 我真的需要能够一次完成所有的工作.这是因为,在每次迭代结束时,输出(水位)被反馈到下一次迭代中作为起始点.
我对编程的理解目前非常基础,但我认为我的所有对象都会在每个循环中被覆盖.我(愚蠢地?)假设如果代码设法成功循环一次,那么它应该能够无限循环而不会占用越来越多的内存.
我已经尝试过阅读各种文档并发现了一些名为"垃圾收集器"的东西,但我觉得我已经超出了我的深度并且我的大脑正在融化!任何人都能提供一些基本的见解,当我的代码循环时,内存中的对象实际发生了什么?有没有一种方法可以在每个循环结束时释放内存,还是有更多的"Pythonic"编码方式可以完全避免这个问题?