小编Mic*_*bon的帖子

.LIB和.OBJ文件有什么区别?(Visual Studio C++)

我知道.OBJ是编译一个编译单元的结果,而.LIB是一个静态库,可以从几个.OBJ创建,但这种差异似乎只是在编译单元的数量.还有其他区别吗?是相同还是不同的文件格式?

当想知道在链接到最终可执行文件期间是否合并了两个(或更多).LIB中定义的相同静态变量时,我遇到了这个问题.对于.OBJ,变量是合并的.但是在.LIBs中它是一样的吗?

c++ linker static-variables static-libraries object-files

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

丰富的Web应用程序技术列表

我试图让自己熟悉丰富的Web应用程序世界.维基百科上有一些可用技术的比较表,但我仍然不清楚丰富的应用程序开发有哪些选项.

您可以验证并填写我在下面收集的信息吗?每个选项的主要优点和缺点是什么?哪个是大型和非常丰富的Web应用程序的最佳选择?

选项1:ASP.NET/ASP.NET MVC
供应商:Microsoft
环境:Visual Studio
语言:C#
输出:HTML + JavaScript + AJAX
示例:www.stackoverflow.com

选项2:Silverlight
供应商:Microsoft
环境:Visual Studio
语言:C#
输出:.NET可执行文件?
示例:?

选项3:Google Web Toolkit
供应商:Google
环境:Eclipse
语言:Java
输出:HTML + JavaScript + AJAX
示例:http://www.projectkaiser.com:8080/pk /

选项4:Flex
供应商:Adobe
环境:?
语言: ?
输出:Flash(.swf文件)
示例:http://listen.grooveshark.com/

选项5:Adobe AIR
供应商:Adobe
环境:?
语言: ?
输出:AIR
示例:http://www.cocoolo.com/en/download.html

选项5:Ruby on Rails
供应商:Rails Core Team
Envirnoment :?
语言:Ruby
输出:HTML + JavaScript + AJAX?
示例:?

选项6:Java Applet
供应商:Sun
环境:Eclipse
语言:Java
输出:Java …

comparison rich-internet-application web-applications

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

如何实施弱参考?

我想知道弱引用是如何在内部工作的,例如在.NET或Java中.我的两个一般想法是:

  1. "侵入性" - 添加对最顶级类(对象类)的弱引用列表.然后,当一个对象被销毁时,可以迭代所有弱引用并将其设置为null.
  2. "非侵入式" - 维护对象指向弱引用列表的哈希表.当为对象B创建弱引用A时,将在哈希表中修改或创建一个条目,其键将是指向B的指针.
  3. "Dirty" - 为每个对象存储一个特殊的哈希值,当对象被销毁时,它将被归零.弱引用将复制该哈希值,并将其与对象的值进行比较,以检查对象是否处于活动状态.但是,当直接使用时,这会导致访问冲突错误,因此我需要有一个具有该哈希值的附加对象.

这些解决方案中的任何一个看起来既干净又效 有谁知道它是如何实际完成的?

.net java weak-references internals

17
推荐指数
4
解决办法
3272
查看次数

"epsilon"真的能保证浮点计算中的任何东西吗?

为了简化问题,我想说我想a / (b - c)floats 上计算表达式.

为了确保结果是有意义的,我可以检查bc是相等的:

float EPS = std::numeric_limits<float>::epsilon();
if ((b - c) > EPS || (c - b) > EPS)
{
    return a / (b - c);
}
Run Code Online (Sandbox Code Playgroud)

但是我的测试表明,如果可能的话,不能保证有意义的结果,也不能不提供结果.

情况1:

a = 1.0f;
b = 0.00000003f;
c = 0.00000002f;
Run Code Online (Sandbox Code Playgroud)

结果:不满足if条件,但表达式将生成正确的结果100000008(与浮点数的精度相同).

案例2:

a = 1e33f;
b = 0.000003;
c = 0.000002;
Run Code Online (Sandbox Code Playgroud)

结果:满足if条件,但表达式不会产生有意义的结果+1.#INF00.

我发现检查结果更可靠,而不是参数:

const float INF = numeric_limits<float>::infinity();
float x = a / (b - c); …
Run Code Online (Sandbox Code Playgroud)

floating-point floating-accuracy epsilon

17
推荐指数
1
解决办法
9372
查看次数

在语法上正确的双名词标识符,复数版本

考虑两个名词,这自然将英语最经常出现的形式"的化合物名词名词 ",例如,"的光的方向","过滤器的输出".编程时,我们通常会编写"LightDirection"和"FilterOutput".

现在,我有复数名词的问题.有两种情况:

1)单数复数

例如"(两个)集合的联合","(两个)段的交集"

哪个是正确的,SetUnion和SegmentIntersection或SetsUnion和SegmentsIntersection?

2)复数复数

有两个子类:

(a)许多要素,每个要素都有许多相关要素,例如"过滤器的输出"

(b)许多元素,每个元素都有单一的相关元素,例如"向量的方向"

我应该使用FilterOutputs和VectorDirections或FiltersOutputs和VectorsDirections吗?

我怀疑第一个版本是正确的(FilterOutupts,VectorDirections),但我认为这可能导致歧义,例如

  • FilterOutputs - 单个过滤器的许多输出或许多过滤器的许多输出?
  • LineSegmentProjections - 对单个细分的许多细分或多个投影的预测?

一般规则是什么,我应该遵循?

naming-conventions

17
推荐指数
3
解决办法
2953
查看次数

如何在C++中优化简单的数值类型包装类?

我试图用C++实现一个定点类,但我遇到性能问题.我已经将问题简化为浮点类型的简单包装,它仍然很慢.我的问题是 - 为什么编译器无法完全优化它?

'float'版本比'Float'快50%.为什么?!

(我使用Visual C++ 2008,测试了所有可能的编译器选项,当然是Release配置).

请参阅以下代码:

#include <cstdio>
#include <cstdlib>
#include "Clock.h"      // just for measuring time

#define real Float      // Option 1
//#define real float        // Option 2

struct Float
{
private:
    float value;

public:
    Float(float value) : value(value) {}
    operator float() { return value; }

    Float& operator=(const Float& rhs)
    {
        value = rhs.value;
        return *this;
    }

    Float operator+ (const Float& rhs) const
    {
        return Float( value + rhs.value );
    }

    Float operator- (const Float& rhs) const …
Run Code Online (Sandbox Code Playgroud)

c++ optimization performance fixed-point

11
推荐指数
1
解决办法
1267
查看次数

std :: vector在增长时会调用swap函数吗?总是或仅适用于某些类型?

据我所知,我可以使用vector(std::vector< std::vector<int> >)的向量,这将是非常有效的,因为内部元素不会被复制,但交换,这要快得多,因为不包括复制内存缓冲区.我对吗?

什么时候std::vector完全利用交换功能?我在C++标准中找不到任何关于它的东西.是否在缓冲区重新分配期间发生?

我做了一些测试才发现它,但我失败了.根本不调用我的自定义数据类型的交换函数.

编辑:这是我的测试程序.

c++ swap vector

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

在.NET中使用XML注释的优点是什么?

我无法理解使用XML注释的优点.我知道它们可以转换成代码外部的漂亮文档,但使用更简洁的DOxygen语法可以实现相同的目标.在我看来,XML注释是错误的,因为:

  1. 它们总体上混淆了评论和代码.(它们更难以被人类阅读).
  2. 可以在单个屏幕上查看更少的代码,因为"summary"和"/ summary"需要额外的行.
  3. (已删除)

那可能是什么原因,为什么XML在.NET中更受欢迎而不是简单的DOxygen语法?

c# doxygen xml-comments

9
推荐指数
3
解决办法
907
查看次数

如何在Windows/C#上获取顶部窗口的进程名称和标题

如同主题......或更好 - 如何在顶部窗口更改时从事件中获取此信息?

c# windows process

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

TI DSP编程 - C足够快还是需要汇编程序?

我将为德州仪器DaVinci平台编写一些图像处理程序.有适合C语言编程的工具,但我想知道是否真的可以在不使用汇编语言的情况下充分利用DSP处理器.你知道在这个DSP平台上用C语言编写的程序和汇编程序之间的速度比较吗?

performance assembly signal-processing texas-instruments davinci

7
推荐指数
4
解决办法
4598
查看次数