Tag: C#的

为什么传递给线程函数的对象引用参数不能编译?

我遇到了使用新的c ++ 11 std::thread接口的问题。 我不知道如何将一个std::ostream的引用传递给线程将执行的函数。 下面是一个传递整数的例子(在gcc 4.6下按照预期编译和工作): void foo(int &i) { /** do something with i **/ std::cout << i << std::endl; } int k = 10; std::thread t(foo, k); 但是当我尝试传递一个ostream它不会编译: void foo(std::ostream &os) { /** do something with os **/ os << "This should be printed to os" << std::endl; } std::thread t(foo, std::cout); […]

C#WebBrowser控件 – 窗体提交不工作使用InvokeMember(“单击”)

我正在处理自动testing脚本,并使用WebBrowser控件。 我正在尝试提交以下HTML并在用户接受服务条款时进行testing: <form action="http://post.dev.dealerconnextion/k/6hRbDTwn4xGVl2MHITQsBw/hrshq" method="post"> <input name="StepCheck" value="U2FsdGVkX18zMTk5MzE5OUgFyFgD3V5yf5Rwbtfhf3gjdH4KSx4hqj4vkrw7K6e-" type="hidden"> <button type="submit" name="continue" value="y">ACCEPT the terms of use</button> <button type="submit" name="continue" value="n">DECLINE the terms of use</button> </form> // Terms of Use Information <form action="http://post.dev.dealerconnextion/k/6hRbDTwn4xGVl2MHITQsBw/hrshq" method="post"> <input name="StepCheck" value="U2FsdGVkX18zMTk5MzE5OUgFyFgD3V5yf5Rwbtfhf3gjdH4KSx4hqj4vkrw7K6e-" type="hidden"> <button type="submit" name="continue" value="y">ACCEPT the terms of use</button> <button type="submit" name="continue" value="n">DECLINE the terms of use</button> </form> […]

超越方程解的精度越来越高

我有一个特定的运动学作为一个更复杂的机器的一部分,需要计算一些非常困难 (更不可能)的物理参数,以适当的准确度来测量我所用的仪器 [运动学] 首先看它是一个简单的1自由度arm(黑色),可以围绕x轴旋转。 它有一个重量,迫使它总是上升,直到它碰到机械终点(angular度a0 )或半径r0一些pipe子(蓝色)。 arm的旋转中心位于y0 。 pipe可以移动到任何y(t)高度。 [用法] 这是用来测量pipe的半径进一步处理。 可以计算半径(通过基本测angular法),这导致在图像底部的等式。 常数a0,y0,z0很难测量(它是在复杂的机械中),所以距离的测量精度最小0.1 mm ,angular度0.1 deg ,甚至是有问题的。 [校准] 所以我决定尝试从机器本身完成的一系列测量(自动校准)中计算这些参数。 所以我有已知半径r0校准pipe。 所有的绿色参数都可以作为常量处理。 现在我把pipe子沿着y轴放置,以尽可能多地覆盖arm的angular度。 可悲的是,范围只有20 degrees (对于当前的机器设置)记住测量预设的y(t) …作为n点数据集的a(t) 。 这给了我n超越方程的系统。 从这里我试着猜测a0,y0,z0记得最好的解决scheme(最接近r0 )的“所有”可能性, [近似于a0,y0,z0] 近似值是基于这个类的: //————————————————————————— class approx { public: double a,aa,a0,a1,da,*e,e0; int i,n; bool done,stop; approx() { a=0.0; aa=0.0; a0=0.0; a1=1.0; da=0.1; e=NULL; e0=NULL; i=0; n=5; done=true; […]

在初始化时定义位集大小?

我想在C ++中做一些小事。 我做了一些研究。 所有的例子,我发现这样的地方: bitset<6> myBitset; // do something with it 但是当我在我的类中定义variables时,我不知道bitset的大小: #include <bitset> class Test { public: std::bitset *myBitset; } 这不会编译… 像这样初始化也不起作用: int size = getDependentSizeForBitset(); myBitset = new bitset<size>();

内存不足Image.FromFile

为什么我得到一个内存不足的错误? 谢谢 if (File.Exists(photoURI)) { FileStream fs = new FileStream(photoURI, FileMode.Open, FileAccess.Read); Image img = Image.FromStream(fs); fs.Close(); }

C逗号运算符

为什么在逗号运算符(如下面的例子)中指定的expression式不被视为常量expression式? 例如, int a = (10,20) ; 当在全局范围中给出时会产生一个错误“初始化器不是一个常量”,尽pipe用逗号分隔的两个expression式都是常量(常量expression式)。 为什么整个expression式不被视为一个常量expression式? 为了澄清,我已经阅读了C中'''操作符是做什么的? 和C逗号运算符的用法 。 他们还没有处理这个逗号运算符的方面。

string文字是否为const?

即使在使用大量-Wall -W -pedantic -std=c99选项( -Wall -W -pedantic -std=c99 )时,GCC和Clang也不会抱怨,如果我将string文字分配给char* char *foo = "bar"; 而他们(当然),如果我分配一个const char* char*来做抱怨。 这是否意味着string文字被认为是char*types? 他们不应该是const char*吗? 如果他们被修改,它没有被定义的行为! 和(一个不相关的问题)命令行参数(即: argv ):它被认为是一个string文字数组?

在Linq OrderBy中使用自己的IComparer <T>

我有一个通用的 List<MyClass> 其中MyClass有一个属性InvoiceNumber ,它包含如下的值: 一分之二十零万零九百零六 二分之二十零万零九百零六 .. 十分之二十零万〇九百〇六 十一分之二十零万零九百零六 十二分之二十万○九百○六 我的清单是绑定到一个 BindingList<T> 它支持用linq进行sorting: protected override void ApplySortCore( PropertyDescriptor property, ListSortDirection direction) { _sortProperty = property; _sortDirection = direction; var items = this.Items; switch (direction) { case ListSortDirection.Ascending: items = items.OrderByDescending(x => property.GetValue(x)).ToList(); break; case ListSortDirection.Descending: items = items.OrderByDescending(x => property.GetValue(x)).ToList(); break; } this.Items = items; […]

为什么我不应该在“删除这个”之后使用“this”值?

在这个C ++ FAQ的使用中delete this构造。 列出了4个限制。 限制1至3看起来相当合理。 但为什么我不能检查它,把它和另外一个指针比较,把它与NULL比较,打印出来,然后用它来做任何事情呢? 我的意思是this是另一个指针。 为什么我不能reinterpret_cast到一个int或调用printf()来输出它的值?

将constexpr标准库函数视为constexpr是否符合编译器扩展?

gcc编译下面的代码而没有警告: #include <cmath> struct foo { static constexpr double a = std::cos(3.); static constexpr double c = std::exp(3.); static constexpr double d = std::log(3.); static constexpr double e1 = std::asin(1.); static constexpr double h = std::sqrt(.1); static constexpr double p = std::pow(1.3,-0.75); }; int main() { } 上面使用的标准库函数都不是constexpr函数 ,我们可以在C ++ 11标准 草案和C ++ 14标准草案 7.1.5 […]