我正在尝试编写ActiveX控件,并注意到我似乎无法在Visual Basic(6.0)中创建一个ActiveX控件,它具有稍微复杂的控件.像标签,按钮和复选框这样的简单控件似乎工作正常,但是一旦我尝试将树控件添加到我的表单中,一旦我将其嵌入到另一台计算机上的某个主机应用程序中,ActiveX控件就会一直保持空白.它在我的开发盒上工作正常.
在浏览Projects-> Components(Ctrl + T)列表时,我发现了两个显然包含树控件的库:
只要我将这些库中的任何控件添加到我的表单中,当嵌入到另一台计算机上时,该表单将保持完全灰色.另一台计算机是一个Windows XP系统,所以我希望丢失的可再发行组件不会成为一个问题,因为Visual Basic 6有多大.可以肯定的是,我安装了VB6可再发行组件,但不幸的是,这并没有什么区别.
有没有人知道为什么我的ActiveX控件会在其他计算机上保持灰色,但不是我的,只要我将上述库中的任何控件添加到我的表单中?FWIW我只需要树控制,所以如果有其他更合适的库可用 - 这对我来说没问题.
更新:
事实证明,它有助于将MSCOMCTL.OCX下载到另一台计算机上的C:\ WINDOWS\SYSTEM32中,然后通过注册它regsvr32 C:\WINDOWS\SYSTEM32\MSCOMCTL.OCX.但是,我没有找到此文件的官方来源,并且手动运行COM注册看起来很麻烦.真的没有我可以使用的可再发行组件吗?
我写了一个编译器缓存MSVC(很像的ccache的GCC).我要做的一件事就是删除缓存目录中最旧的目标文件,以将缓存修剪为用户定义的大小.
现在,我基本上有一个元组列表,每个元组是最后的访问时间和文件大小:
# First tuple element is the access time, second tuple element is file size
items = [ (1, 42341),
(3, 22),
(0, 3234),
(2, 42342),
(4, 123) ]
Run Code Online (Sandbox Code Playgroud)
现在我想对此列表进行局部排序,以便对前N个元素进行排序(其中N是元素的数量,以便它们的大小总和超过45000).结果基本上应该是这样的:
# Partially sorted list; only first two elements are sorted because the sum of
# their second field is larger than 45000.
items = [ (0, 3234),
(1, 42341),
(3, 22),
(2, 42342),
(4, 123) ]
Run Code Online (Sandbox Code Playgroud)
我并不关心未分类条目的顺序,我只需要列表中N个最老的项目,其累积大小超过某个值.
我想在cl.exe不调用预处理器的情况下运行Microsoft Visual Studio编译器.这可能吗?我认为简单地编译预处理的源代码(使用/c标志)会使预处理器运行成为无操作,但显然情况并非如此.我做了一些基准测试.这是一个小的源文件(main.cpp),它只包含一些代码:
#include <iostream>
#include <string>
#include <windows.h>
Run Code Online (Sandbox Code Playgroud)
以下是一些不同的编译器调用及其时序:
1: cl /c main.cpp ~1.02s 2: cl /EP main.cpp > main-preprocessed.cpp ~0.5s 3: cl /c main-preprocessed.cpp ~0.75s
似乎编译预处理的源代码已经快一点了(预处理器不需要做任何事情).但是,1和2之间的差异表明实际的编译器和汇编器只需要0.5s.因此,编译预处理的源代码(如步骤3中所做的那样)比我希望的要慢一些.
有没有办法只运行编译器和汇编器,而无需调用预处理器?我对MSVC6到MSVC10的解决方案很感兴趣.
我喜欢使用三元?:运算符编写代码:
std::string result = input.empty() ? createNewItem()
: processInput( input );
Run Code Online (Sandbox Code Playgroud)
我如何配置vim,以便在键入createNewItem()缩进后按下返回行,以便光标与最后一行在同一列中,?以便我可以继续键入: processInput( input );?
我试着查看cinoptions-values设置,但我没有看到任何相关内容.
想象一个简单的矩形位图,例如,1024x768像素填充白色.在位图上绘制了一些(非重叠的)精灵:圆形,正方形和三角形.
有一个算法(可能甚至是C++实现),给定位图和颜色是背景颜色(白色,在上面的例子中),产生一个包含每个精灵的最小边界矩形的列表?
下面是一些示例:在左侧,您可以看到我的代码给出的示例位图(以及"背景"为白色的信息).在右侧,您可以看到相同的图像以及四个形状的边界矩形(红色); 我正在寻找的算法计算这些矩形的几何形状.
输入图片http://s1.directupload.net/images/111215/ruycwlgl.png 输出图片http://s1.directupload.net/images/111215/encr84ps.png
一些绘画程序具有用于选择形状的类似特征:它们甚至可以计算看似任意的边界多边形.您可以单击"背景"(背景和不是由某个阈值确定的内容),而不是手动拖动选择矩形,然后工具会自动计算绘制到背景上的对象的形状.我需要这样的东西,除非我只是有对象的矩形边界区域我完全没问题.
我开始意识到OpenCV ; 它似乎是相关的(它似乎是一个包含我能想到的所有图形算法的库 - 然后是一些)但是在快速的信息量中我无法找到通向我想到的算法的方法.如果OpenCV无法做到这一点,我会感到惊讶,但我担心你必须拥有一名博士才能使用它.:-)
对于在Windows 8(随IE10附带)上测试(和调试......)我的Flex应用程序一样,我刚下载了Flash调试播放器11.4.402.287 - 但是,尝试安装它只是显示一个消息框说
安装遇到错误:Microsoft Internet Explorer浏览器包含最新版本的Adobe Flash Player内置版本.Windows Update将在新版本的Flash Player可用时通知您.
我在Windows 8上使用的是Internet Explorer 10.0.9200.16384.一些谷歌研究表明,IE10内置了一个Flash播放器(类似于谷歌Chrome浏览器),所以我找了一种方法来禁用播放器.看来这确实可以通过单击IE10工具栏中的C图标然后选择"管理加载项"来实现.显示的对话框显示"Shockwave Flash Object"条目.但是,即使禁用了内置Flash播放器,Flash Debug Player安装程序也会保持相同的消息.
有谁知道如何在IE10中安装Flash Debug Player?
我编写了一个简单的WSGI应用程序(使用Flask),该应用程序由uWSGI(即除uWSGI之外没有其他HTTP服务器)提供服务,该应用程序仅支持单个PUT路由,客户端可以使用该路由上传文件(可能约为400MB),并在服务器上进行处理然后寄回。
在一段时间后,在uWSGI日志中,我注意到两种超时错误。通常,发送响应时会超时:
Feb 02 20:46:30 myserv uwsgi[18948]: uwsgi_response_sendfile_do() TIMEOUT !!!
Feb 02 20:46:30 myserv uwsgi[18948]: OSError: write error
Feb 02 20:46:30 myserv uwsgi[18948]: [pid: 18954|app: 0|req: 1795/3935] aa.bb.cc.dd () {32 vars in 455 bytes} [Fri Feb 2 20:46:06 2018] PUT /sample.exe => generated 0 bytes in 24314 msecs via sendfile() (HTTP/1.1 200) 6 headers in 258 bytes (3353 switches on core 0)
Run Code Online (Sandbox Code Playgroud)
不过有时候,在接收到PUT请求时也会超时:
Feb 03 20:18:32 signserv uwsgi[18948]: [pid: 18953|app: 0|req: 2975/5670] aa.bb.cc.dd () {32 vars in 455 bytes} [Sat …Run Code Online (Sandbox Code Playgroud) 我最近经历了一个Haskell教程,并在交互式ghcishell中尝试一些简单的Haskell表达式时注意到了这种行为:
Prelude> 1.1 + 1.1 == 2.2
True
Prelude> 1.1 + 1.1 + 1.1 == 3.3
False
Prelude> 1.1 + 1.1 + 1.1 > 3.3
True
Prelude> 1.1 + 1.1 + 1.1
3.3000000000000003
Run Code Online (Sandbox Code Playgroud)
有谁知道那是为什么?
我正在使用一个函数,它产生一些数据作为std::vector<char>另一个函数(想想遗留API),它处理数据并获取数据const char *, size_t len.有没有办法从向量中分离数据,以便在调用处理函数之前向量可以超出范围而不复制向量中包含的数据(这就是我所说的分离意味着).
一些代码草图来说明场景:
// Generates data
std::vector<char> generateSomeData();
// Legacy API function which consumes data
void processData( const char *buf, size_t len );
void f() {
char *buf = 0;
size_t len = 0;
{
std::vector<char> data = generateSomeData();
buf = &data[0];
len = data.size();
}
// How can I ensure that 'buf' points to valid data at this point, so that the following
// line is okay, without …Run Code Online (Sandbox Code Playgroud) 我有像C++这样的函数
int f( const std::string &s, double d );
Run Code Online (Sandbox Code Playgroud)
现在我想创建一个包含指针的变量f.这个变量应该有正确的类型(int (*)( const std::string &, double )- 但我不想明确地写出那种类型.我想推断它,f以便我不重复类型签名.最后,我希望能够写下以下内容:
TypeOf<f>::Result x = f;
Run Code Online (Sandbox Code Playgroud)
为了实现这一点,我尝试做这样的事情:
// Never implemented, only used to deduce the return type into something which can be typedef'ed
template <typename T> T deduceType( T fn );
template <typename T>
struct TypeOf {
typedef T Result;
};
// ...
TypeOf<deduceType(f)>::Result x = f;
Run Code Online (Sandbox Code Playgroud)
我希望也许函数的返回类型(deduceType在这种情况下)可以用作模板参数但是唉 - 似乎你不能这样做.
有人知道怎么做这个吗?我正在寻找一个C++ 03解决方案.