我正在尝试使用mysql connexion从我的数据库中获取std :: string
这是简单的代码:
sql::Statement *stmt = con->createStatement();
sql::ResultSet *res = stmt->executeQuery("SELECT * FROM test.new_table");
while (res->next()) {
std::string somestring = res->getString("idnew_table");
} //crashes here
delete res;
delete stmt;
Run Code Online (Sandbox Code Playgroud)
所以,executeQuery很好,我进入循环,如果我中断,预期的结果是在一些字符串.在somestring声明之后,我继续前进到循环结束,并在下一次迭代之前崩溃!
这是调用堆栈:
> msvcp100d.dll!std::_Lockit::_Lockit(int kind) Line 64 + 0x14 bytes C++
msvcp100d.dll!std::_Container_base12::_Orphan_all() Line 200 C++
CM.dll!std::_String_val<char,std::allocator<char> >::~_String_val<char,std::allocator<char> >() Line 478 + 0xb bytes C++
CM.dll!std::basic_string<char,std::char_traits<char>,std::allocator<char> >::~basic_string<char,std::char_traits<char>,std::allocator<char> >() Line 755 + 0xf bytes C++
CM.dll!DAL::GetInfo() Line 45 + 0xc bytes C++
Run Code Online (Sandbox Code Playgroud)
输出:
First-chance exception at 0x1038ad4a (msvcp100d.dll) in CMLauncher.exe: 0xC0000005: Access …Run Code Online (Sandbox Code Playgroud) 我有一个带有三个动画的CCSprite:空闲,行走和攻击.我想在空闲和步行之间切换,具体取决于精灵是否在移动(如果操纵杆正在使用).所有这一切都很棒.对于攻击动画,我希望它运行一次,然后在完成后返回上一个动画(例如:空闲)如何检测动画何时完成?
谢谢,
戴夫
我试图左右显示两个图像,包括文本,控件以及我心中想要的任何其他图像.为此,我有以下内容:
<div>
<div id="leftDiv" style="float:left; width:49%; height:400px; background-color:transparent">
<div style="position:relative; left:61px; top:100px; width: 319px; z-index:1">This is text</div>
<div style="position:relative; left:61px; top:100px; width: 319px; z-index:1">This is also text</div>
<img id="leftImg" alt="Images/redbox.png"
style="width:100%; height:100%; z-index:-1; right: 1124px; top: 9px;"
src="Images/redbox.png" />
</div>
<div id="rightDiv" style="float:left; width:49%; height:400px; background-color:transparent">
<img id="rightImg" src="Images/bluebox.png" alt="Images/bluebox.png" style="width:100%;height:100%; z-index:-1;" />
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
除了一件小事之外,这一切都很棒......左边的div,"redbox.png"总是被我想要的s(或者元素所占据的任何位置)的数量减少.我可以将元素放在图像之后,但是将它们放在我想要的方式更容易,并且在我为框架设置动画时将它们保持在原位.
现在,为什么我使用图像而不是background-img?好吧,我希望图像<div>自动调整到周围的s,这是我发现轻松做到这一点的唯一方法(使用javascript手动调整大小是一个选项,但是复杂的一个,因为这些框将被设置为动画).
有任何想法吗?谢谢!
我想使用wiimote来控制没有红外传感器条的光标.我正在使用它的音高和滚动值.问题是,当音高接近0度时,滚动非常不稳定,当音高接近90度时,它本身非常不稳定,但滚动很好.我经常轮询wiimote,所以我平均最后20个音高和滚动值,我可以让光标移动到我想要的位置.唯一的问题是还有很多无法控制的震动.关于如何减少它的任何想法?(或者甚至在没有IR传感器的情况下获得更精确的位置?)
谢谢!
戴夫
我想将回调转发给函数指针.所以我声明了一个静态(int*)m_pointer1,以及一个方法void RegisterCallback1((int*)fct)
在class1.h:
public:
int RegisterCallback1( int (*fct) );
private:
static int (*m_Callback1);
Run Code Online (Sandbox Code Playgroud)
在class1.cpp中:
int class1::RegisterCallback1( int (*fct) )
{
m_Callback1= fct;
}
Run Code Online (Sandbox Code Playgroud)
那么,我想将回调转发给函数指针:
void class1::Callback1()
{
(*m_Callback1)();
}
Run Code Online (Sandbox Code Playgroud)
但我得到一个编译器错误"表达必须有(指针) - 函数类型我已经按照教程和阅读有关函数指针,他们似乎这样做没有任何问题.任何想法为什么?
编辑:所以,我声明(int*)(void)m_Callback1 -Visual Studio需要一个空格......-然后如何用参数调用registerCallback函数?
class1.RegisterCallBack1( ??? - class2::callback -??? );
Run Code Online (Sandbox Code Playgroud) 我有一个DLL导出一个返回float*的函数,我想在我的C#代码中使用它.我不知道如何制作我的浮动*以便我可以安全地在C#中使用它.所以,在我的C++ DLL中,我声明了:
static float* GetSamples(int identifier, int dataSize);
Run Code Online (Sandbox Code Playgroud)
在我的C#脚本中,我有:
[DllImport ("__Internal")]
public static extern float[] GetSamples (int identifier, int dataSize);
Run Code Online (Sandbox Code Playgroud)
C++ GetSamples(int,int)分配内存并返回float数组的指针.如何将C#GetSamples声明为Marshal我的float数组,以及如何访问数据(通过迭代或Marshal.Copy)?另外,我可以从C#中删除float*还是必须调用另一个C++函数来删除分配的内存?
编辑:所以这是我现在尝试过的.首先,在C#方面:
宣言:
[DllImport ("__Internal")]
public static extern int GetSamples ([In, Out]IntPtr buffer,int length, [Out] out IntPtr written);
Run Code Online (Sandbox Code Playgroud)
试着打电话给它:
IntPtr dataPointer = new IntPtr();
IntPtr outPtr;
GetSamples(dataPointer, data.Length, out outPtr);
for (var i = 0; i < data.Length; i++){
copiedData[i] = Marshal.ReadByte(dataPointer, i);
}
Run Code Online (Sandbox Code Playgroud)
然后在我的C++ lib中:
int AudioReader::RetrieveSamples(float * sampleBuffer, size_t dataLength, size_t * /* out */ written)
{ …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用zlib解压缩zip文件(不使用任何扩展或第三方).最初,src_len是48756255,dest_len是49209890.在while循环中第一次传递很好:err是Z_OK,第二次传递开始.在第二遍,无论我做什么,我都会从膨胀中获得Z_BUF_ERROR.此时stream.total_out是49034460,所以有一点剩余,但第二遍的stream.avail_in为0.无论如何,我希望膨胀给我Z_STREAM_END.我真的不知道发生了什么,有人可以帮忙吗?
void compression::uncompress2(char* dest, unsigned dest_len, char* src, unsigned src_len) {
TempAllocator ta;
z_stream_s stream = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
stream.next_in = (Bytef*)src;
stream.avail_in = (uInt)src_len;
stream.next_out = (Bytef*)dest;
stream.avail_out = (uInt)dest_len;
stream.zalloc = zalloc;
stream.zfree = zfree;
stream.opaque = &ta;
// no header
int err = inflateInit2(&stream, -MAX_WBITS);
XENSURE(err == Z_OK);
bool done = false;
while (!done) {
stream.next_out = (Bytef*)(dest + stream.total_out);
stream.avail_out = dest_len - stream.total_out;
err …Run Code Online (Sandbox Code Playgroud) 我有一个页面,您可以在一系列texbox(从PHP生成)和2个按钮,GetData和SaveData中输入数据.我希望能够在编辑texbox时按Enter键,它将执行与单击SaveData按钮相同的操作(onclick ="onSave();").我可以通过执行以下操作来实现此目的:
<form id="editForm" name="editForm" action="onSave();">
Run Code Online (Sandbox Code Playgroud)
但当我按回车键时,页面被重定向到页面,没有php帖子(例如:www.mypage.com/index.php,而不是www.mypage.com/index.php?edit_data=true)
我如何实现我想要的目标?