Tag: C#的

最快的方法来计算一个128位整数模64位整数

我有一个128位无符号整数A和一个64位无符号整数B.计算A % B的最快方法是什么?这是将A除以B得到的(64位)余数? 我正在寻找以C或汇编语言来做到这一点,但我需要针对32位的x86平台。 这不幸意味着我不能利用128位整数的编译器支持,也不能利用x64体系结构在单个指令中执行所需操作的能力。 编辑: 感谢您迄今的答复。 但是,在我看来,推荐的algorithm会非常慢 – 不是执行128位乘64位除法的最快方法是利用处理器对64位乘32位的本机支持吗? 有没有人知道是否有办法在几个较小的部门执行更大的部门? Re:B多久换一次? 主要是我对一个通用的解决scheme感兴趣 – 如果A和B每次都可能会有所不同,你会进行什么样的计算? 但是,第二种可能的情况是B不会像A那么频繁地变化 – 可能有多达200个A被B分开。在这种情况下你的答案会有什么不同?

在catch块中返回?

在catch块中有return语句是错误的吗? 有什么select? 即: public bool SomeFunction() { try { //somecode return true; } catch(Exception ex) { MessageBox.Show(ex.message); return false; } }

weak_ptr是如何工作的?

我明白如何使用weak_ptr和shared_ptr 。 通过计算对象中引用的数量,我明白shared_ptr是如何工作的。 weak_ptr如何工作的? 我试着通过boost源代码阅读,并且我不太熟悉提高,以了解它使用的所有东西。 谢谢。

C#Winforms粗体树视图节点不显示整个文本

我正在使用下面的代码来使我的treenodes粗体: Font font = new Font(tvQuestionSequence.Font, FontStyle.Bold); foreach (QuestionnaireBuilder_Category cat in categories) { TreeNode node = new TreeNode(); node.Text = cat.Description; node.Name = cat.Id.ToString(); node.NodeFont = font; tvQuestionSequence.Nodes.Add(node); } 但粗体节点的文本显示不正确。 最后一个字母没有显示。 怎么来的? 而如何解决这个问题呢?

“字段不完整”错误

在我的头文件中有一个错误: field "ui" has incomplete type. 我已经尝试使用ui指针,但是这不起作用。 我不认为我需要这样做,因为我已经在命名空间Ui定义了我的MainWindowClass 。 这是我的mainwindow.h : #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtGui/QMainWindow> #include "ui_mainwindow.h" namespace Ui { class MainWindowClass; } class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0, Qt::WFlags flags=0); ~MainWindow(); public slots: void slideValue(int); private: Ui::MainWindowClass ui; //error line }; #endif // MAINWINDOW_H

Xcode – 警告:隐式的函数声明在C99中是无效的

获得警告:函数'Fibonacci'的隐式声明在C99中是无效的。 怎么了? #include <stdio.h> int main(int argc, const char * argv[]) { int input; printf("Please give me a number : "); scanf("%d", &input); getchar(); printf("The fibonacci number of %d is : %d", input, Fibonacci(input)); //!!! }/* main */ int Fibonacci(int number) { if(number<=1){ return number; }else{ int F = 0; int VV = 0; int […]

有没有任何好的图像识别库的.NET?

我希望能够将从networking摄像头拍摄的图像与存储在我的电脑上的图像进行比较。 图书馆不需要百分百的准确,因为它不会被用于任何关键的任务(例如警方调查),我只想要一些我可以使用的东西。 我已经尝试了一个CodeProject的图像识别示范项目,它只适用于小图像/根本不工作,当我比较完全相同的图像120×90像素(这不是分类为OK:P)。 图像识别之前有没有成功? 如果是这样,你能提供一个链接到我可以在C#或VB.NET中使用的库吗?

“bool”是C ++中的一个基本数据types吗?

我在编写代码的时候有这个疑问。 “bool”是C ++标准中定义的基本数据types还是编译器提供的某种扩展? 我得到了这个疑问,因为Win32有'BOOL',它只是一个longtypes定义。 还有,如果我做这样的事情会发生什么: int i = true; 它是“总是”保证variables我将有价值1或者是再次取决于我正在使用的编译器? 进一步对于接受BOOL作为参数的一些Win32 API,如果我通过布尔variables会发生什么?

无效的使用不完整的types

我想在我的项目中使用一个子类的typedef,我在下面的例子中隔离了我的问题。 有谁知道我要去哪里错了? template<typename Subclass> class A { public: //Why doesn't it like this? void action(typename Subclass::mytype var) { (static_cast<Subclass*>(this))->do_action(var); } }; class B : public A<B> { public: typedef int mytype; B() {} void do_action(mytype var) { // Do stuff } }; int main(int argc, char** argv) { B myInstance; return 0; } 这是我得到的输出: sean@SEAN-PC:~/Documents/LucadeStudios/experiments$ […]

从dll导出包含std :: objects(vector,map等)的类

我试图导出类包含对象,如std :: vectors和std :: strings的类 – 整个类声明为DLL导出通过: class DLL_EXPORT FontManager { 问题是,对于复杂types的成员,我得到这个警告: 警告C4251:'FontManager :: m__fonts':class'std :: map <_Kty,_Ty>'需要使用types为'FontManager'的客户端的dll接口,其中[_Kty = std :: string,_Ty = tFontInfoRef ] 我可以删除一些警告,即使我不改变成员variables本身的types,在他们之前放置下面的转发类声明: template class DLL_EXPORT std::allocator<tCharGlyphProviderRef>; template class DLL_EXPORT std::vector<tCharGlyphProviderRef,std::allocator<tCharGlyphProviderRef> >; std::vector<tCharGlyphProviderRef> m_glyphProviders; 看起来像前向声明“注入”DLL_EXPORT当成员编译,但它是安全的? 当客户端编译这个头文件并在他身边使用std容器时,是否真的改变了什么? 它会使所有将来使用这种容器DLL_EXPORT(也可能不内联?)? 它真的解决了警告试图警告的问题吗? 这是警告什么,我应该担心,还是最好在这些构造的范围内禁用它? 客户端和DLL将始终使用相同的库和编译器集,而这些是仅标头的类… 我正在使用Visual Studio 2003与标准的STD库。 —-更新—- 我想更多的针对你,因为我看到的答案是一般的,在这里我们谈论的是标准容器和types(如std :: string) – 也许问题是: 我们可以通过相同的库头来禁用标准容器和types对客户端和dll可用的警告,并像对待int或任何其他内置types一样对待它们吗? (这似乎在我身边正常工作。)如果是这样,应该是我们可以做到这一点的条件? 或者应该禁止使用这样的容器,或者至less要非常小心地确保没有赋值运算符,拷贝构造函数等等会被内联到dll客户端中? […]