我在代码的一个时刻设置了一个会话对象:
Session("my_name") = "Dave"
Run Code Online (Sandbox Code Playgroud)
稍后在我的代码中,我给用户一个更新此对象的机会:
Session("my_name") = TextBox1.Text
Run Code Online (Sandbox Code Playgroud)
我重新加载我的页面并显示一个像这样的小问候:
Label1.Text = "Hello" & CStr(Session("my_name"))
Run Code Online (Sandbox Code Playgroud)
结果是:"Hello Dave"无论我改变Session("my_name")也是如此.
编辑:这是我写的一个完整的代码隐藏演示:
Public Class WebForm1
Inherits System.Web.UI.Page
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Response.Cache.SetCacheability(HttpCacheability.NoCache)
Response.ExpiresAbsolute = DateTime.Now.AddMonths(-1)
If Page.IsPostBack = False Then
Session("my_name") = "Dave"
End If
Label1.Text = CStr(Session("my_name"))
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
Session("my_name") = TextBox1.Text
End Sub
Run Code Online (Sandbox Code Playgroud)
结束班
我正在编写一个模拟按键的测试应用程序,我想在每次按键后显示什么窗口.这是代码块.
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
Run Code Online (Sandbox Code Playgroud)
在这里按0后,会出现一个窗口,我想查看它是什么窗口,以便我可以稍后进行QCompare /评估.
有任何想法吗?
更新:
我使用时遇到分段错误
std::auto_ptr<MyForm> pForm(new MyForm(3,3));
QTest::keyPress(pForm.get(), Qt::Key_0);
QWidget *pWin = QApplication::activeWindow();
QCOMPARE(pWin->windowTitle(), QString("My Second Menu"));
Run Code Online (Sandbox Code Playgroud) 如何在Qt中将数据从一个表单传递到另一个表单?
我创建了一个QWidgetProgect - > QtGuiApplication,我目前有两种形式.现在我想将数据从一个表单传递到另一个表单.
我怎样才能做到这一点?
谢谢.
我有一个在基于ARM Cortex-M的MCU上运行的应用程序,用C和C++编写.我使用gcc
并g++
编译它,并希望完全禁用任何堆使用.
在MCU启动文件中,堆大小已经设置为0.除此之外,我还想禁止在代码中使用任何意外的堆.
换句话说,我想接头(和/或编译器),以给我一个错误时malloc
,calloc
,free
功能或new
,new[]
,delete
,delete[]
运营商使用.
到目前为止,我已经尝试过-nostdlib
这样的问题undefined reference to _start
.我也尝试过,-nodefaultlibs
但是当我试着打电话时,我仍然没有抱怨malloc
.这样做的正确方法是什么?
笔记:
我正在使用arm-none-eabi-gcc
7.4 为基于 ARM Cortex-M4 的微控制器(特别是 EFM32WG940,但这应该与问题无关)编译“裸机”程序。
据我所知,sizeof(int)
和sizeof(long int)
与未签名的对应物一起都是4
. 实际上,您必须输入long long int
才能获取 64 位整数(或int64_t
),因此long int
似乎完全是多余的。
在这种环境下,为什么__UINT32_TYPE__
预定义宏定义为long unsigned int
?
有没有办法改变uint32_t
呢unsigned int
?
通常这不会困扰我,但它会让printf
我感到困难,因为-Wformat
。考虑类似:(printf("hello %u\n", i);
假设i
是uint32_t
)这给了我一个警告,因为%u
期望unsigned
但是uint32_t
是unsigned long
。显然我可以将其更改为%lu
,但在 x86 上编译时相同的代码会给我一个警告。
编辑:
是的,一种沉默的方法-Wformat
是使用这样的格式宏:虽然实际上并没有回答我的问题,但如果代码不是那么丑陋,并且一些静态分析器没有问题,那将是最好的。inttypes.h
printf("hello %" PRIu32, i);
我不想破解我所有的 …
我知道这是一个简单的问题,但我真的在Google上找不到任何东西.对不起,如果我没有正确搜索.我创建了2页,在第一页中我有一个按钮.
我应该在C#代码中写什么来改变以在第二页上重定向我?
我通常知道我在C#的方式,但我是ASP的新手.
我是Qt的新手,我正在使用新的诺基亚Qt SDK测试版,我正在努力在我的空闲时间为我的诺基亚N900开发一个小应用程序.
幸运的是,我能够正确设置所有内容,并在设备上运行我的应用程序.
我在学校学过C++,所以我觉得它不会那么难.
我使用Qt Creator作为我的IDE,因为它不能与Visual Studio一起使用.
我也希望将我的应用程序移植到Symbian,所以我已经运行了几次模拟器,我也编译Windows以调试最邪恶的错误.(调试器在设备上无法正常工作.)
我来自.NET背景,所以有一些我不理解的东西.
当我点击构建按钮时,Qt Creator会在我的项目目录中生成一堆文件:
moc_*.cpp
文件 - 我不知道他们的目的.有人能告诉我吗?*.o
文件 - 我认为这些是目标代码*.rss
文件 - 我不知道他们的目的,但他们肯定与RSS没有任何关系Makefile
而且Makefile.Debug
- 我不知道AppName
(没有扩展名) - Maemo的可执行文件,以及AppName.sis
- Symbian的可执行文件,我想?AppName.loc
- 我不知道AppName_installer.pkg
而且AppName_template.pkg
- 我不知道qrc_Resources.cpp
- 我想这是我的Qt资源(AppName
相关申请的名称在哪里)
我注意到这些文件可以安全删除,Qt Creator只是重新生成它们.
问题是它们污染了我的源目录.特别是因为我使用版本控制,如果它们可以重新生成,则将它们上传到SVN是没有意义的.
那么,有人可以告诉我这些文件的确切目的是什么,以及如何让Qt Creator将它们放入另一个目录?
编辑:
似乎我从这个问题的答案中学到了比我想象的更多.:)
非常感谢帮助我的每个人.我给了每个人一个upvote,因为我可以从每个答案中学到新东西.
实际上,Rob推荐的似乎是最方便的解决方案,但我接受了Kotti的回答,因为他为Qt的构建机制如何运作提供了最好的解释.
解决方案:
似乎Maemo和Symbian工具链都没有支持阴影构建,所以我在我的项目文件中使用这些来解决这种情况:
DESTDIR = ./NoSVN
OBJECTS_DIR = ./NoSVN
MOC_DIR = ./NoSVN
RCC_DIR = ./NoSVN
UI_HEADERS_DIR = ./NoSVN
Run Code Online (Sandbox Code Playgroud) 我作为Web开发人员学到的第一件事就是永远不会接受来自客户端的任何HTML.(也许只有我对它进行HTML编码.)
我使用输出HTML的WYSIWYG编辑器(TinyMCE).到目前为止,我只在管理页面上使用它,但现在我也想在论坛上使用它.它有一个BBCode模块,但似乎不完整.(BBCode本身可能不支持我想要的所有内容.)
所以,这是我的想法:
我允许客户端直接POST一些HTML代码.然后,我检查代码的完整性(良好格式)并删除所有基于预定义的允许标记和样式集不允许的标记,属性和CSS规则.
显然我会允许我使用的TinyMCE功能子集可以输出的东西.
我会允许以下标签:
span
,sub
,sup
,a
,p
,ul
,ol
,li
,img
,strong
,em
,br
具有以下属性:
style
(一切),href
以及title
(对于a
),alt
和src
(对img
)
而下面的CSS规则:
color
,font
,font-size
,font-weight
,font-style
,text-decoration
这些内容涵盖了格式化所需的所有内容,并且(据我所知)不会带来任何安全风险.基本上,良好的执行和缺乏任何布局样式可以防止任何人伤害网站的布局.禁止脚本标记和类似内容会阻止XSS.
(一个例外:也许我应该允许width
/ height
在图像的预定义范围内.)
其他优点:这些东西可以节省我编写/寻找BBCode-Html转换器的需要.
你怎么看?
这是安全的事吗?
(正如我所见,StackOverflow还允许在"关于我"字段中使用一些基本的HTML,所以我认为我不是第一个实现它的人.)
编辑:
我找到了这个答案,解释了如何相当容易地做到这一点.
当然,没有人应该考虑使用正则表达式.
问题本身与任何语言或技术无关,但如果您想知道,我在ASP.NET中编写此应用程序.
#include <cstdio>
using namespace std;
class A {
public:
virtual void func() { printf("A::func()"); }
};
class B : public A {
public:
virtual void func() { printf("B::func()"); }
};
int main() {
A a = *(A *)new B();
a.func();
}
Run Code Online (Sandbox Code Playgroud)
问题很简单:为什么即使包含B类对象,也要a->func()
调用类中的函数?A
a
有一个供应商的软件,我想与之合作.他们有一个代码库,他们只能使用IAR Embedded Workbench进行编译(据我所知,他们的代码不能用GCC编译).不幸的是,他们的硬件仅适用于他们的软件堆栈,所以我真的无法选择是否要使用它.它们将此代码分发.a
为为ARM Cortex-M4 CPU编译的静态库文件(以及随附的标头).(他们不想分发来源.)为了这个讨论,让我们称之为evil_sw_stack.a
.
我想使用这段代码,但我没有IAR许可证,对IAR没有专业知识.我想使用GCC.
有没有办法让IAR生成GCC可以链接到的静态库?供应商需要使用哪种编译器选项来生成这样的二进制文件?
(我猜测得到的二进制文件的ABI可以某种方式指定并设置为满足GCC的设置.)
他们的默认软件堆栈非常适合GCC,这个特定的软件堆栈是他们提供的唯一一个不是.通常,如果我有以下内容,我可以编译一段简单的示例代码:
startup_(devicename).S
:GCC特定的程序集文件system_(devicename).c
(devicename).ld
:链接器脚本例如,我可以编译一个简单的例子,如下所示:
$ arm-none-eabi-gcc helloworld.c startup_(devicename).S system_(devicename).c -T (devicename).ld -o helloworld -D(devicename) -I. -fno-builtin -ffunction-sections -fdata-sections -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -mcpu=cortex-m4 -mthumb -mno-sched-prolog -Wl,--start-group -lgcc -lc -lnosys -Wl,--end-group
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.没有警告,没有错误.
为了这个讨论,让我们称之为evil_sw_stack.a
.
这就是我尝试使用它的方式:
$ arm-none-eabi-gcc evil_sw_stack.a helloworld.c startup_(devicename).S system_(devicename).c -T (devicename).ld -o helloworld -D(devicename) -I. -fno-builtin -ffunction-sections -fdata-sections -mfpu=fpv4-sp-d16 -mfloat-abi=softfp -mcpu=cortex-m4 -mthumb -mno-sched-prolog -Wl,--start-group -lgcc -lc -lnosys -Wl,--end-group
Run Code Online (Sandbox Code Playgroud)
不幸的是,这抱怨了一系列定义的函数的多个定义system_(devicename).c
.也许他们不小心把它编成了这个库?或者也许IAR只是这样编译?现在,如果我尝试system_(devicename).c …