问题列表 - 第11266页

如何初始化静态std :: map?

我已经创建了一个仅消息窗口类,我正在尝试将HWND映射回具有这些句柄的对象.我正在尝试使用std::map<HWND, CMyClass*>属于该类的私有静态来执行此操作,如下所示:

MyClass.h:

class CMyClass
{
    ...

private:
    HWND        m_hWnd;
    HINSTANCE   m_hInstance;
    LPCSTR      m_szClassName;

    static std::map<HWND, CMyClass*> s_mapHandles;

    ...
};
Run Code Online (Sandbox Code Playgroud)

MyClass.cpp:

std::map<HWND, CMyClass*> CMyClass::s_mapHandles;
Run Code Online (Sandbox Code Playgroud)

但是当我尝试添加到地图时,程序崩溃了.我尝试了三种不同的形式,它们都给出了同样的错误:

...
m_hWnd = ::CreateWindowEx(0, m_szClassName, "Message Window", 0, 0, 0, 0, 0, HWND_MESSAGE, 0, m_hInstance, 0);
s_mapHandles.insert(pair<HWND, CMyClass*>(m_hWnd, this));
Run Code Online (Sandbox Code Playgroud)

要么

...
s_mapHandles.insert(s_mapHandles.end(), pair<HWND, CMyClass*>(m_hWnd, this));
Run Code Online (Sandbox Code Playgroud)

甚至

...
s_mapHandles[m_hWnd] = this;
Run Code Online (Sandbox Code Playgroud)

在每种情况下,_Root()尝试返回的调用都会发生崩溃_Parent(_Myhead); _Parent(_Myhead)返回(_Nodepref)(*_Myhead)._Parent失败,因为_Myhead为null.

如何初始化地图,使其头部非空,我可以在不崩溃的情况下插入内容?如果我解释得很糟糕,我会道歉 - 我是C++的新手.

c++ dll stl stdmap

3
推荐指数
1
解决办法
5035
查看次数

jQuery addClass无法正常工作

我正在尝试使用addClass在我的Joomla模板上给我斑马条纹表.我使用以下代码:

 <script>
  jQuery(function($) {
    $("tr:odd").addClass("odd");
  });
</script>
Run Code Online (Sandbox Code Playgroud)

我已经能够使用tr:odd选择器动态地将css添加到表行,但是当我使用addClass函数时它只是不行(我检查了生成的源代码,并且没有表行具有"奇数"类) .

不知道我可能做错了什么,会感激任何帮助.

jquery addclass

6
推荐指数
2
解决办法
5万
查看次数

Web服务/ wcf服务,返回数据集是否更好?

因此,从我所看到的服务,自定义对象似乎是写入服务以返回数据的方式.如果我正在编写一个服务,用于1)填充数据库,或者2)为网站提供信息,是否有用于返回数据集/数据表而不是自定义对象列表的所有这些信息?

谢谢

c# service wcf web-services

5
推荐指数
1
解决办法
3310
查看次数

如何指定Django测试服务器应该监听哪个eth接口?

正如标题所说,在具有多个IP环境的多个以太网接口中,默认的Django测试服务器没有连接到我可以从我的PC访问的网络.有没有办法指定Django测试服务器应该使用的接口?

- 添加 -

网络配置在这里.我通过我的电脑上的143.248.xy地址连接到机器.(我的电脑也在143.248.ab网络.)但我找不到这个地址.正常的apache以及在其他端口上运行的其他自定义守护进程非常有效.

配置这台机器的人不是我,所以我不太了解网络的细节......

eth0      Link encap:Ethernet  HWaddr 00:15:17:88:97:78
          inet addr:192.168.6.100  Bcast:192.168.2.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe88:9778/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:441917680 errors:0 dropped:0 overruns:0 frame:0
          TX packets:357190979 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:191664873035 (178.5 GB)  TX bytes:324846526526 (302.5 GB)

eth1      Link encap:Ethernet  HWaddr 00:15:17:88:97:79
          inet addr:172.10.1.100  Bcast:172.10.1.255  Mask:255.255.255.0
          inet6 addr: fe80::215:17ff:fe88:9779/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1113794891 errors:0 dropped:97 overruns:0 frame:0
          TX packets:699821135 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 …
Run Code Online (Sandbox Code Playgroud)

python django networking ethernet

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

在Python中写入文件的实际位置

我想读取文件中的一行并在一行的n位置插入新行("\n")字符,以便将一个9个字符的行转换为三个3个字符的行,如这个:

"123456789" (before)
"123\n456\n789" (after)
Run Code Online (Sandbox Code Playgroud)

我试过这个:

f = open(file, "r+")
f.write("123456789")
f.seek(3, 0)
f.write("\n")
f.seek(0)
f.read()
Run Code Online (Sandbox Code Playgroud)

- >'123 \n56789'

我希望它不要替换位置n中的字符,而只是在该位置插入另一个("\n")字符.

有关如何做到这一点的任何想法?谢谢

python file

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

如何检查Perl中的哈希中是否存在密钥?

我想检查参数$PGkey是否等于哈希表中具有相同名称的键.此外,我希望尽可能接近这种格式:

while(<PARAdef>) {
    my($PGkey, $PGval) = split /\s+=\s+/;
    if($PGkey == $hash{$PGkey}) {
        print PARAnew "$PGkey = $hash{$PGkey}->[$id]\n";
    } else {
        print PARAnew "$PGkey = $PGval\n";
    }
}
Run Code Online (Sandbox Code Playgroud)

有一个简单的方法吗?

perl hash exists

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

学习如何避免OOP中的副作用和状态的最佳资源是什么?

我最近一直在玩函数式编程,关于副作用的主题有很好的处理方法,为什么要包含它们等等.在使用OOP的项目中,我正在寻找一些资源来规划一些策略.最小化副作用和/或状态.

一个很好的例子是RESTful Web Services一书,它为您提供了最小化Web应用程序状态的策略.还存在其他什么?

请记住,我不是在寻找另一个OOP分析师/设计模式书(尽管良好的封装和松耦合有助于避免副作用),而是主题本身就是状态/副作用的资源.

一些汇编的答案

  • 主要关心状态的OOP程序员因并发而这样做,因此请阅读Java Concurrency in Practice.[ 正是我所寻找的]
  • 使用TDD使副作用更明显[我喜欢它,例如:你的setUps越大,运行测试所需的状态就越多=好警告]
  • 命令查询分离 [好东西,防止更改函数参数的副作用,这通常令人困惑]
  • 方法只做一件事,如果他们改变对象的状态,可能会使用描述性名称,因此它很简单明了.
  • 使对象不可变 [我真的很喜欢这个]
  • 将值作为参数传递,而不是将它们存储在成员变量中.[我不联系这个; 它混乱了功能原型,并且被"清洁代码"和其他书籍积极劝阻,尽管我承认它有助于国家问题]
  • 重新计算值而不是存储和更新它们[我也非常喜欢这个; 我在应用程序中处理性能是一个小问题]
  • 同样,如果可以避免,请不要复制状态.让一个对象负责保留它并让其他人访问它.[基本OOP原则,好建议]

state side-effects

10
推荐指数
2
解决办法
2015
查看次数

如何使用c#扩展方法扩展类?

可以将扩展方法应用于类吗?

例如,扩展DateTime以包含可以调用的Tomorrow()方法,如:

DateTime.Tomorrow();
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用

static DateTime Tomorrow(this Datetime value) { //... }
Run Code Online (Sandbox Code Playgroud)

要么

public static MyClass {
  public static Tomorrow() { //... }
}
Run Code Online (Sandbox Code Playgroud)

对于类似的结果,但我如何扩展DateTime以便我可以调用DateTime.Tomorrow?

c# extension-methods

92
推荐指数
4
解决办法
14万
查看次数

PHP中mysql_affected_rows()的奇怪行为

我有一个名为user_ips跟踪用户的表,以防他们删除cookie或更改浏览器.所以无论如何,以下代码很简单.它更新user_ip中等于用户id和IP的条目.如果查询没有更新任何行,则表示该用户的IP不在表中,因此将其插入.

$site->query('UPDATE `user_ips` SET `last_time` = UNIX_TIMESTAMP(), `user_agent` = \''.$this->user_agent.'\' WHERE `ip` = '.$this->ip.' AND `userid` = '.$this->id);
if(mysql_affected_rows() == 0)
{
    $site->query('INSERT INTO `user_ips` SET `userid` = '.$this->id.', `ip` = '.$this->ip.', `first_time` = UNIX_TIMESTAMP(), `last_time` = UNIX_TIMESTAMP(), `user_agent` = \''.$this->user_agent.'\'');
}
Run Code Online (Sandbox Code Playgroud)

问题是mysql_affected_rows()有时会返回0,即使存在具有用户当前ID和IP的行也是如此.然后,代码使用相同的IP向表中添加另一行.

如果您想知道,$ site是我为我的网站制作的mysql类,它执行的唯一查询是通过query()传递给它的那个,而且没有更多,所以这不是类的问题.哦,IP存储为长IP,因此它不需要引号.

php mysql

3
推荐指数
1
解决办法
499
查看次数

调用可以在C++中抛出异常的函数的析构函数

我知道我不应该从析构函数中抛出异常.

如果我的析构函数调用一个可以抛出异常的函数,那么如果我在析构函数中捕获它并且不进一步抛出它是否可以?或者它是否会导致中止,我不应该从析构函数中调用这些函数?

c++ destructor exception try-catch throw

10
推荐指数
1
解决办法
3523
查看次数