小编Rod*_*ddy的帖子

如何指定从Delphi TStream读取的组件的所有者?

我正在从流中读取组件,并希望能够指定Owner属性.

  var TComponent : comp;

  stream.Seek(0, soFromBeginning);
  comp := stream.ReadComponent(nil);
Run Code Online (Sandbox Code Playgroud)

谁拥有comp,我该如何改变呢?我希望readComponent的参数是所有者,但它似乎做了一些完全不同的事情!

delphi streaming components

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

windows的lua"stub"dll的目的是什么?

我期待在Lua的结合成一个C++项目,我有点被从分布在两个二进制文件(lua51.dll和lua5.1.dll)存在混淆Luabinaries.

根据文件......

在Windows中,您的库或应用程序必须与存根库链接.存根库是一个只有函数声明的库,它将DLL与Lua DLL绑定在一起.

为什么?在与第三方DLL链接之前,我从未需要存根DLL?

windows dll lua stub shared-libraries

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

为什么这个小函数(在opengl中画一个圆圈)不会在c中编译?

我正在用linux中的opengl进行一些实验.我有以下功能,可以根据这些参数绘制一个圆圈.我已经包括在内了

 #include <stdlib.h>
 #include <math.h>
 #include <GL/gl.h>
 #include <GL/glut.h>
Run Code Online (Sandbox Code Playgroud)

但是当我编译时:

gcc fiver.c -o fiver -lglut
Run Code Online (Sandbox Code Playgroud)

我明白了:

   /usr/bin/ld: /tmp/ccGdx4hW.o: undefined reference to symbol 'sin@@GLIBC_2.2.5'
   /usr/bin/ld: note: 'sin@@GLIBC_2.2.5' is defined in DSO /lib64/libm.so.6 so try  
   adding it to the linker command line
  /lib64/libm.so.6: could not read symbols: Invalid operation
   collect2: ld returned 1 exit status
Run Code Online (Sandbox Code Playgroud)

功能如下:

void drawCircle (int xc, int yc, int rad) {
//
// draw a circle centered at (xc,yc) with radius rad
//
  glBegin(GL_LINE_LOOP);
//
  int angle;
  for(angle …
Run Code Online (Sandbox Code Playgroud)

c opengl math

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

如何访问非可视Delphi组件的设计位置?

在IDE中设计表单时,可以自由放置和定位非可视组件(例如TMainMenus,TDatamodules).该位置是持久的,因此在重新加载表单时,这些组件会出现在正确的位置.

但是,TComponent没有Top或Left属性!

那么,我的代码如何访问非可视组件的"设计位置"?

delphi tcomponent

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

为什么智能指针没有转换操作符回到基指针?

如果经常发现自己使用这样的代码:

boost::scoped_ptr<TFoo> f(new TFoo);

Bar(f.get());  // call legacy or 3rd party function : void Bar (TFoo *)
Run Code Online (Sandbox Code Playgroud)

现在,我认为智能指针可以轻松地将隐式转换运算符定义回"原始"指针类型,这将允许此代码仍然有效,并简化旧代码的"智能化"

Bar(f);
Run Code Online (Sandbox Code Playgroud)

但是,它们至少不是,而不是我发现的那些.为什么?

c++ smart-pointers scoped-ptr

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

x = x ++的影响是什么?

#include <stdio.h>

int main()
{
  int x=100;
  x=x++;
  printf("x : %d\n",x); //prints 101
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

输出101的原因是什么?我认为输出应该是100.

c

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

Android Studio Gradle超时错误

我试图在android studio中打开一个现有的android项目,但是当我尝试刷新并构建gradle时,我得到一个错误; "Gradle'项目名称'项目刷新失败:错误:连接超时.如果您在HTTP代理后面,请在IDE或Gradle中配置代理设置." 但是,我不是代理人.此外,整个构建过程需要很长时间,大约1小时30分钟.请帮忙.谢谢.

gradle android-studio

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

C++模板:编码错误或编译器错误?

我正在尝试使用模板来获取std:项目列表,其中每个项目都有一个指向包含它的列表的指针,但我一直在点击编译器消息.

这是一个非常精简的代码版本.

template <class E> class Item  
{
    public:
        E* owner; // pointer to list that owns us.
};

template <class E> class BaseList: public std::list<E>
{
protected:
    typedef std::list<E> inherited;
public:

    void push_back(const E &e)
    {
        E tmp(e);
        tmp.owner = this;  // This line gives the error.
        inherited::push_back(tmp);
    }
};

class MyList;

class MyItem : public Item<MyList>
{
};

class MyList : public BaseList<MyItem>
{
};

void foo()  // test code to instantiate template
{
    MyList l;
    MyItem m; …
Run Code Online (Sandbox Code Playgroud)

c++ templates stl c++builder

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

使用C++编写文件和目录

我正在开发一个程序,它创建2000个目录并在每个目录中放入一个文件(只有10KB左右的文件).我正在使用mkdir制作dirs和ofstream(我也试过fopen)将文件写入固态驱动器(我正在进行速度测试以进行比较).

当我运行代码时,目录创建正常但文件在写入1000左右后停止写入.我尝试在每次写入之前设置一个延迟,以防它出现某种过载,并尝试使用fopen代替ofstream,但它总是停止在第1000个文件标记周围写入文件.

这是写入文件和退出的代码,告诉我它失败了哪个文件.

fsWriteFiles.open(path, ios::app); 
if(!fsWriteFiles.is_open()) 
{
   cout << "Fail at point: " << filecount  << endl; 
   return 1;
}
fsWriteFiles << filecontent;
fsWriteFiles.close();
Run Code Online (Sandbox Code Playgroud)

有没有人有这方面的经验或有任何理论?

这是完整的代码:此代码从随机数创建一个2位十六进制目录,然后从随机数创建一个4位十六进制目录,然后将文件存储在该目录中.在写完1000个文件后,它以"失败点"(我已经添加了一个cout)退出.这表示它无法创建文件,但它应该已经检查过该文件不存在.有时它从0开始失败,从底线击中第二个(文件已存在的else子句).任何帮助赞赏,我觉得这是与我正在尝试创建已经存在的文件,但我的文件存在检查已经不知何故滑落.有没有办法为失败的文件创建尝试获取错误消息?

int main()
{
  char charpart1[3] = "";
  char charpart3[5] = "";

  char path[35] = "";
  int randomStore = 0;

  //Initialize random seed
  srand(time(NULL));
  struct stat buffer ;

  //Create output file streams
  ofstream fsWriteFiles;    
  ifstream checkforfile;

  //Loop X times
  int dircount = 0;
  while(dircount < 2000)
  {
    path[0] = '\0'; //reset the char array that …
Run Code Online (Sandbox Code Playgroud)

c++ ofstream mkdir

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

如何获取ComboBox项目数

我正在尝试使用以下代码获取组合框项目数.它不会给出错误,也不会给出正确的计数.我想我必须将int转换为字符串,但是如何?

ComboBox1->ItemIndex = 1;
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;
Run Code Online (Sandbox Code Playgroud)

c++ vcl c++builder

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