小编Lum*_*mpi的帖子

在调用函数时切换"控制转移绕过初始化:"

当我尝试构建以下开关时,我得到"转移控制绕过初始化:"错误:

switch (retrycancel)
{
    case 4:    //The user pressed RETRY
        //Enumerate all visible windows and store handle and caption in "windows"
        std::vector<MainHandles::window_data> windows = MainHandles().enum_windows().get_results(); 
        break;

    case 2: 
        //code
}
Run Code Online (Sandbox Code Playgroud)

它与我调用枚举函数有关.如果不允许从交换机内调用函数,是否有针对此类问题的解决方法?

c++ function switch-statement

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

sql使用COUNT设置变量

我试图对我的服务器进行简单的查询,并希望将结果存储在变量@times中.

DECLARE @times int

SET @times = SELECT COUNT(DidWin)as "I Win"
FROM thetable
WHERE DidWin = 1 AND Playername='Me'
Run Code Online (Sandbox Code Playgroud)

IntelliSense说 Wrong syntax near Select

t-sql sql-server

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

ADODB打开记录集失败/"对象关闭时不允许操作"

我在excel中有以下UDF,它使用ADO连接到我的MSSQL服务器.它应该执行标量udf"D100601RVDATABearingAllow".

由于某种原因,我尝试附加的参数不会发送到sql server.仅在服务器上:

SELECT dbo.D100601RVDATABearingAllow
Run Code Online (Sandbox Code Playgroud)

到达.

我的EXFEL UDF:

   Function RVDATA(Fastener) As Long

    Dim cnt As ADODB.Connection
    Dim rst As ADODB.Recordset
    Dim Cmd1 As ADODB.Command
    Dim stSQL As String

Const stADO As String = "Provider=SQLOLEDB.1;Data ................"
'----------------------------------------------------------
Set cnt = New ADODB.Connection
 With cnt
    .ConnectionTimeout = 3
    .CursorLocation = adUseClient
    .Open stADO
    .CommandTimeout = 3
 End With
'----------------------------------------------------------
Set Cmd1 = New ADODB.Command
    Cmd1.ActiveConnection = cnt
    Cmd1.CommandText = "dbo.D100601RVDATABearingAllow"
    Cmd1.CommandType = adCmdStoredProc
'----------------------------------------------------------
Set Param1 = Cmd1.CreateParameter("Fastener", adInteger, adParamInput, 5)
Param1.Value …
Run Code Online (Sandbox Code Playgroud)

sql-server vba ado adodb recordset

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

在SQL Server上,如何从几个变量中找到MAX或MIN值

我刚刚发现SQL中的MAX()函数只适用于列.

有没有类似的功能我可以用来找到例如这四个变量的最大值?

SET @return = MAX(@alpha1, @alpha2, @alpha3, @alpha4)
Run Code Online (Sandbox Code Playgroud)

或者我必须先将它们放在一列中(然后首先创建一个表...... ;-()?

问候

Lumpi

sql-server max

6
推荐指数
1
解决办法
3412
查看次数

当参数可以是列表或字符串时,TCL使用"eq"或"=="

我有以下if循环:

if { expr { $Node_3 eq "BadAngle" } } {
  return "BadAngle"
}
Run Code Online (Sandbox Code Playgroud)

Node_3可以是包含坐标的列表,也可以是简单的字符串"BadAngle",我使用TCLPro 1.4进行调试和TCL 8.6.我明白了:

*表达式"expr {$ Node_3 eq"BadAngle"}"*中的语法错误

然后我也尝试过:

if { [ expr { $Node_3 eq "BadAngle" ] == 1 } } {
   return "BadAngle"
}
Run Code Online (Sandbox Code Playgroud)

但我得到同样的错误.另外:在这种情况下,更好的选择是什么:要使用"=="或"eq",我认为"eq"因为列表是一种字符串......或者?

string compare tcl

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

C++列表删除重复字符串

使用列表时我遇到了一些问题.

我所拥有的:我正在从聊天框中读取新的文本行.我总是从框中取出最后20行,然后我想将它们与之前提取的所有行进行比较.如果发现新行,则将其发送到外部函数,该函数反汇编该行以进行进一步处理.在我使用数组和向量之前,列表似乎是更好的方法.

我的想法:我有一个名为usedlines的列表,其中包含所有旧的已经使用过的行.fetchedLines列表包含从聊天框中获取的最新20行.

不,我只想循环使用它们来查明所获取的行是否包含之前未见过的新行.在循环之后,fetchedlines中的遗留被处理到下一个函数.

问题:当我循环通过这个循环时,我会在一段时间后得到一个错误的指针.为什么?额外奖励:有没有人有更好的想法来解决这个任务?

typedef list<string> LISTSTR;
LISTSTR::iterator f;
LISTSTR::iterator u;
LISTSTR fetchedlines;                 
LISTSTR usedLines;                



fetchedlines.insert(fetchedlines.end(), "one");
fetchedlines.push_back("two");
fetchedlines.push_back("three");
fetchedlines.push_back("four");
fetchedlines.push_back("three");

usedLines.push_back("three");
usedLines.push_back("blää");
usedLines.push_back("lumpi");
usedLines.push_back("four");


 for (u =  usedLines.begin(); u != usedLines.end(); u++)
 {
 for (f =  fetchedlines.begin(); f != fetchedlines.end(); f++)
   {
   if(*u==*f)
    fetchedlines.remove(*f);
  }

}
Run Code Online (Sandbox Code Playgroud)

c++ list unique

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

限制std :: set的大小

我有一个关于std :: set容器的简短问题.现在我正在使用pushback功能来提供我的设置.对于每个push_back,该集合变得越来越大.我只对最新的30个元素感兴趣......可以删除旧元素.所以我的想法是将集合的大小限制为30个元素左右,并通过这样做摆脱不需要的旧元素.但是,默认情况下,该集不支持限制.我可以偶尔检查一下这个集的大小,然后手动删除多余的元素.有更聪明的方法吗?

关心Lumpi

c++ lru stdset

4
推荐指数
2
解决办法
2690
查看次数

如何获得_bstr_t的长度

我正在使用以下命令将wstring复制到_bstr_t:

_bstr_t name;           
SysFreeString(name);   // Free previous string, if any.
name = SysAllocString(Member[k].Membername);
Run Code Online (Sandbox Code Playgroud)

在我使用"名称"之前,我想检查它是否包含至少5个字符.换句话说,我想检查一下它的长度.

我没有找到"countof"或"len"或类似的东西.有人有想法吗?

谢谢,隆比

c++ windows string

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

定义缓冲区大小正确"堆栈变量String已损坏"

我的代码中有这两行:

TCHAR String[400] = {0};
SendMessageW(hwnd, WM_GETTEXT,sizeof(String), (LPARAM)String);
Run Code Online (Sandbox Code Playgroud)

当我以这种方式使用它时,我有时会遇到运行时错误:"堆栈变量String已损坏"

我用的时候

TCHAR String[400] = {0};
SendMessageW(hwnd, WM_GETTEXT,10, (LPARAM)String);
Run Code Online (Sandbox Code Playgroud)

它没有问题.但我认为使用sizeof()的全部事情是确保没有溢出问题....为什么sizeof(String)不安全,我可以使用什么?

谢谢!祝你有愉快的一天!

c++

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

_bstr_t concatenate给出了12142

我这里有一件奇怪的事.我正在连接_bstr_t字符串以组装SQL命令.

_bstr_t strSQL = a+b+k+hk+Allin+hk+k+hk  
Run Code Online (Sandbox Code Playgroud)

...等等.

当我将它打印到控制台(使用std::wcout << '/n'<< strSQL << '/n';)时,我得到了我的字符串,但是在字符串的开头和结尾处有一个12142.看起来像:

 12142"SELECT * FROM....."12142
Run Code Online (Sandbox Code Playgroud)

有谁知道它来自哪里?

我正在使用:VS2010 Express,C++,我正在构建一个控制台应用程序.

c++ sql string-concatenation

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

比较两个wstring时使用迭代器

我正在迭代列表并通过向量.两者都充满了wstring s.

我需要比较他们指向的两个字符串,并找出"wstring1"是否存在于另一个"wstring2"中.

n和k是两个迭代器.

当我尝试:

   wcscmp(*n,*k);
Run Code Online (Sandbox Code Playgroud)

如果我理解了错误消息,那么它会失败,因为const wchar t是正常的...

如何判断*n ="Hello you little fellow"是否包含*k ="little"?

案件没关系.

PS:我不想使用BOOST lib.

c++ string compare

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

使用数组get后,如何删除TCL中的索引

我有一个用数组完成的proc.要返回它,我使用"array get"来检索列表.但是这个列表不仅包含我的数组,还包含它们的索引:

所以我的数组[ a b c d ] 变成了一个列表{ 0 a 1 b 2 c 3 d }

如何在不打扰列表顺序的情况下摆脱这些索引号?

arrays list tcl

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

使用pow产生意想不到的结果

我试图在c ++中使用pow函数,但结果不是我所期望的.片段:

#include <math.h>
float floatcopy = boost::lexical_cast<float>(copy); //Then floatcopy is 2.300000    
float exponent = boost::lexical_cast<float>(copy[foundEXP+1]); // Then exponent is 5.00000    
floatcopy = pow(floatcopy*10,-exponent);
Run Code Online (Sandbox Code Playgroud)

现在,当我的计算器(或在我脑海中)输入2.3*10 ^ -5时,我按预期得到:0.0000230

上面的剪辑结果是1.5536773e-007

这里有什么问题??

c++ math pow

0
推荐指数
1
解决办法
133
查看次数