标签: vb6

停止Visual Basic 6更改我的外壳

非常简单的问题,显然不可能找到一个合适的答案:我怎样才能使Visual Basic 6停止改变我的^ @#*变量套管!?!

我知道很多VB用户的一般意见是这个"功能"实际上非常有用,但我怀疑他们在任何源控制系统中都使用它很多.当您尝试与其他几个开发人员合作开展任何重要项目时,这绝对是一种感染.如果忽略,您会对文件(甚至没有实际代码更改的文件)产生数千个误报"更改",这些更改会污染修订历史记录,并且在某些情况下几乎不可能找到发生的实际更改.

如果你不忽略它(就像我的办公室,我们被迫实施"不需要更改案例"的政策),你花费的时间是你每次提交时的5倍,因为你必须小心地恢复VB的"修正" "在每个文件上,有时会恢复数百行以进行一行更改.

当然必须有一个设置,插件,黑客等可以删除这个不需要的"功能"?我愿意采取任何我能得到的方法,只要它不需要我挑选成堆的幻影差异.并预先解决了几个抱怨:不,我不能在我的差异工具中关闭案例检测,这不是重点.不,我们不能仅仅在全球范围内改变案例.我们正在与跨越多年开发的多个开发人员共同工作的数十万个LOC合作.从业务角度来看,同步是不可行的.最后:不,我们无法升级到VB.net或移植到另一种语言(尽可能多的我喜欢).

(是的,我现在只是有点恼怒.你能说出来吗?我道歉,但这花费了我的时间和我的公司资金,而且我觉得不可接受.)

vb6

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

用C/C++编译DLL,然后从另一个程序中调用它

我想制作一个简单,简单的DLL,它导出一个或两个函数,然后尝试从另一个程序中调用它...到目前为止,我看到的每个地方,都是复杂的事情,将事物连接在一起的不同方式,奇怪的问题,我还没有开始意识到存在......我只是想通过做这样的事情来开始:

创建一个导出一些函数的DLL,比如

int add2(int num){
   return num + 2;
}

int mult(int num1, int num2){
   int product;
   product = num1 * num2;
   return product;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用MinGW进行编译,我想在C中做到这一点,但如果在C++中做任何真正的差异,我也想知道它们.我想知道如何将该DLL加载到另一个C(和C++)程序,然后从中调用这些函数.在玩了一些DLL之后,我的目标是通过将DLL加载到visual basic中来制作用于C(++)代码的VB前端(我有视觉工作室6,我只想制作一些表格和这些表单上的对象的事件,调用DLL).

我需要知道如何调用gcc(/ g ++)来创建一个DLL,还需要知道如何编写(/生成)导出文件...以及我能在DLL中做什么/不能做什么(比如,我可以采取来自VB前端的指针/引用的参数?DLL可以在前端调用理论函数吗?或者有一个函数从VB调用"函数指针"(我甚至不知道是否可能)它?)我很确定我不能将变量传递给DLL ......但这就是我所知道的.

再次更新

好吧,我想出了如何使用gcc编译它,以使我运行的dll

gcc -c -DBUILD_DLL dll.c
gcc -shared -o mydll.dll dll.o -Wl,--out-implib,libmessage.a
Run Code Online (Sandbox Code Playgroud)

然后我有另一个程序加载它并测试函数,它工作得很好,非常感谢建议,但我尝试用VB6加载它,就像这样

Public Declare Function add2 Lib "C:\c\dll\mydll.dll" (num As Integer) As Integer
Run Code Online (Sandbox Code Playgroud)

然后我只是从表单调用add2(text1.text),但它给了我一个运行时错误:

"在C:\ c\dll\mydll.dll中找不到DLL入口点add2"

这是我为DLL编译的代码:

#ifdef BUILD_DLL
#define EXPORT __declspec(dllexport)
#else
#define EXPORT __declspec(dllimport)
#endif

EXPORT int __stdcall add2(int num){
  return num + 2; …
Run Code Online (Sandbox Code Playgroud)

c c++ vb6 dll gcc

58
推荐指数
3
解决办法
11万
查看次数

如何确定是否在VB6中初始化了一个数组?

将未扩展的数组传递给VB6的Ubound函数将导致错误,因此我想在检查其上限之前检查它是否已被标注尺寸.我该怎么做呢?

arrays vb6

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

VB6中Sub和Function有什么区别?

我正在浏览一些旧的VB代码,我遇到了像这样的函数定义 -

 Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer

 Private Sub cmdCustomerList_Click()
Run Code Online (Sandbox Code Playgroud)

有什么不同?

vb6

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

我应该在VB/VBA中使用Call关键字吗?

Call在VB/VBA中调用subs时使用关键字.我知道这是可选的,但是使用它还是不让它更好?我一直以为它更明确,但也许只是噪音.

另外,我在另一个论坛上看到了这个:使用Call关键字更快,因为它知道它不会返回任何值,因此它不需要设置任何堆栈空间来为返回值腾出空间.

vb.net vb6 vba call

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

有Visual Basic 6反编译器吗?

我从我正在为我所工作的公司所做的一个项目中丢失了源代码,并且无法找到Visual Basic 6反编译器; 这甚至存在吗?

我只有我从用户机器上救出的EXE.

vb6 decompiling

45
推荐指数
4
解决办法
12万
查看次数

在VB6中实现String.Format()

可以String.Format()在VB6中实现,至少是一个足够接近的版本,在用'VB6'进行编程时可能会有用吗?

关于VB6字符串操作性能的良好资源:http://www.aivosto.com/vbtips/stringopt2.html

在一个相关的不,我也想出了几个字符串比较函数,在CodeReview.SE上找到它们

这些函数对于提高VB6的可读性非常有用,特别是如果你最近被.net代码宠坏了,突然被要求潜入VB6代码库......享受!

string vb6 vba string-formatting

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

更新KB 2687323后,VB6 IDE无法加载MSCOMCTL.OCX

Windows更新安装安全更新KB2687323后,我的VB6项目无法加载.显示的错误消息是"'[project_vbp_path] /MSCOMCTL.OCX'无法加载 - 继续加载项目?".请注意,messeage中的路径是vbp文件夹路径而不是控件的注册路径.

细节:

  1. MSCOMCTL.OCX在通常的system32文件夹中注册.
  2. 完全相同的项目生成的可执行文件,在更新前一小时运行正常并加载更新的MSCOMCTL.OCX(我已使用Process Explorer检查过它).

安全更新说明指出MSCOMCTL.OCX具有新的固定版本.所以我检查了"升级ActiveX控件"复选框的项目属性.我试过两种方式; 检查和取消选中无济于事.VB6 IDE拒绝加载升级后的OCX.

vb6

44
推荐指数
5
解决办法
19万
查看次数

添加换行符到VBA/VB6

我想在两个字符串之间连接一个换行符.

st = "Line 1" + newline + "Line2"
Run Code Online (Sandbox Code Playgroud)

如何在VBA/VB6中添加换行符?

vb6 vba

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

VB6在Windows 8上运行?

假设vb6不能在Windows 8上运行,因为Windows 8没有附带VB6运行时库,是不是可以在Windows 8上安装VB6运行时库然后再运行VB6?还是有另一个问题?

windows vb6 compatibility windows-8

42
推荐指数
3
解决办法
4万
查看次数

标签 统计

vb6 ×10

vba ×3

arrays ×1

c ×1

c++ ×1

call ×1

compatibility ×1

decompiling ×1

dll ×1

gcc ×1

string ×1

string-formatting ×1

vb.net ×1

windows ×1

windows-8 ×1