小编Bep*_*ppe的帖子

Realloc与链接列表扫描

我必须从一个文件中读取一个未知数量的行并将它们保存到一个结构中(我希望避免使用预处理来计算元素的总数).在读取阶段之后,我必须对这些行的每个元素进行一些计算.

我想出了两种方法:

  1. 使用realloc每个我读了一排时间.这样,分配阶段很慢,但由于索引访问,计算阶段更容易.

  2. 每次我读一行时都使用链表.这样,分配阶段更快,但计算阶段更慢.

从复杂的角度来看,有什么更好的?

c linked-list realloc

7
推荐指数
2
解决办法
2052
查看次数

VB6 - 无法找到DLL

我正在尝试使用该命令在VB6中加载DLL

Private Declare Function myFuncLib "myDLL.dll" (ByVal file_name_in As String, _ ByVal file_name_out As String) As Long

但是一旦我运行该程序,它会弹出一个文本框为":"运行时错误:53找不到:myDLL.dll"

DLL放在项目的同一目录中.

如果我将myDLL.dll放在system32文件夹中它可以工作,但我不想这样做,我想将dll放在项目的同一个文件夹中.

有没有办法解决这个问题?

谢谢

windows vb6 dll

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

C - __declspec(线程)变量表现

我正在研究库的多线程实现.在该库的一个模块中,存在一些全局变量(在程序执行中经常使用).为了更安全地访问这些变量,我使用Thread-local storage(TLS)关键字声明它们__declspec(thread).

这是对库外部函数的调用.此函数使用具有全局变量的模块:

for(i = 0; i<n_cores; i++)
    hth[i] = (HANDLE)_beginthread((void(*)(void*))MT_Interface_DimenMultiCells,0,(void*)&inputSet[i]);
Run Code Online (Sandbox Code Playgroud)

通过这种方式,我猜每个线程都会复制库中使用的所有变量.

当我在x8内核处理器上运行程序时,完成操作所需的时间不会超过单个进程实现所需时间的1/3.

我知道不可能达到1/8的时间,但我认为至少1/6是可以达到的.

问题是:那些__declspec(线程)变量是如此糟糕表现的原因?

在此先感谢,GB

c performance multithreading declspec

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

定义字符串数组

我想定义一个像这样的字符串数组:

#define sup (const char**) ("string1", "string2")
Run Code Online (Sandbox Code Playgroud)

但是当我尝试打印第一个字符串时它失败了:

printf("The string: %s\n",sup[0]); 
Run Code Online (Sandbox Code Playgroud)

怎么以正确的方式做到这一点?

c arrays string c-preprocessor

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

崩溃使用变量声明__declspec(线程)

我有一个使用静态线程本地存储(__declspec(thread))的DLL(用C编写),我想从Visual Basic图形界面使用这个DLL.

不幸的是,当在Windows XP上运行该接口时,使用静态线程本地存储的DLL在尝试访问其线程变量时崩溃.

我怎么解决这个问题?

感谢和问候

GB

PS我想不修改DLL.

dll multithreading

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

VB - 以隐式方式链接DLL

我正在研究VB6图形界面,我需要隐式链接到DLL.

这个动机来自我之前的问题.有问题的DLL使用静态TLS,__declspec(thread)当然,当使用LoadLibray显式链接DLL时,这会非常糟糕.

我真的想避免修改DLL,所以有谁知道如何欺骗VB6可执行文件隐式链接到特定的DLL?

windows vb6 dll multithreading visual-c++

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