阅读:3026回复:26
VC中怎么使用VB的函数
VC中怎么使用VB的函数
能否提供一点思路 谢谢 |
|
沙发#
发布于:2002-07-17 18:09
什么呀?
用VB写的dll? 还是VB的api? |
|
板凳#
发布于:2002-07-17 19:07
我在DirectX SDK中发现了一个很好的、但用VB编的例子
我想把用VB函数编的功能用在VC的工程中 不知VB是否支持dll,如支持的话,该怎样处理? 如不支持的话,能否用ActivcX什么的解决一下? |
|
地板#
发布于:2002-07-17 19:09
我对VB不是很熟...
|
|
地下室#
发布于:2002-07-18 09:21
用户被禁言,该主题自动屏蔽! |
|
5楼#
发布于:2002-07-18 09:32
对呀,用VC重新写。
|
|
6楼#
发布于:2002-07-18 11:20
我也想用VC写,可下面这段代码...
Dim objSmartRenderEngine As New SmartRenderEngine Public Sub AddFileWriterAndMux(objFilterGraphManager As FilgraphManager, bstrFileName As String) Dim objFilterInfo As IFilterInfo Dim objRegisteredFilters As Object Dim objAVIMuxFilterInfo As IFilterInfo Dim objRegFilterInfo As IRegFilterInfo Dim objFileSinkFilterVB As IFileSinkFilterForVB On Local Error GoTo ErrLine \'derive a collection of registered filters from the filtergraph manager Set objRegisteredFilters = objFilterGraphManager.RegFilterCollection \'enumerate through the registered filters For Each objRegFilterInfo In objRegisteredFilters If Trim(LCase(objRegFilterInfo.Name)) = \"file writer\" Then objRegFilterInfo.Filter objFilterInfo ElseIf Trim(LCase(objRegFilterInfo.Name)) = \"avi mux\" Then objRegFilterInfo.Filter objAVIMuxFilterInfo End If Next \'derive the file sink filter tailored for vb Set objFileSinkFilterVB = objFilterInfo.Filter \'assign the filename to the sink filter Call objFileSinkFilterVB.SetFileName(bstrFileName, Nothing) ... 我有几个问题: 1.用VC重写是否可以直接将VB代码替换成VC(如赋值、函数调用等) 2.如有只在VB中定义的Object怎么办 如IFileSinkFilterForVB 3.Set objRegisteredFilters = objFilterGraphManager.RegFilterCollection For Each objRegFilterInfo In objRegisteredFilters VC该怎么写 谢谢做答 |
|
7楼#
发布于:2002-07-18 11:26
DX SDK有for VC的呀。用。
|
|
8楼#
发布于:2002-07-18 11:43
这个例子叫TrimmerVB
独独他找不到VC的例子 真TMD的微软 |
|
9楼#
发布于:2002-07-18 11:45
arthurtu兄,帮帮忙吧!
|
|
10楼#
发布于:2002-07-18 15:16
我也想用VC写,可下面这段代码... 一般来说,VC代码更容易转换成VB代码,只要处理好数据类型, 近似一一对应; 但是,由于VB语言对基本的API函数进行封装,所以在逆向转换时 难度较前者大,你得了解它有没有从一大堆DLL中引用外部函数, 如果是这样,转换VC时也必须调用相应的DLL才行。 |
|
11楼#
发布于:2002-07-18 16:36
问个很菜的问题
怎么知道VB使用了哪些dll,他的定义方式不同于VC |
|
12楼#
发布于:2002-07-18 18:19
看declare function/sub这样的语句。
没有for VC的,我也没有办法了。 :( |
|
13楼#
发布于:2002-07-18 18:45
如果很难用VC编写,就只有用VB编了
不知VB的Active dll能否象dll在VC中使用? |
|
14楼#
发布于:2002-07-19 09:27
应该可以吧。 :D
|
|
15楼#
发布于:2002-07-19 09:47
可以快速生成一个VB的COM组件,导出接口,然后可以在VC中调用。
|
|
|
16楼#
发布于:2002-07-19 14:12
VB生成的dll只有dll文件、lib文件
在VC中怎么调用啊? |
|
17楼#
发布于:2002-07-19 14:15
我LoadLibarary后
再用GetProcAddress 得不到函数的地址 |
|
18楼#
发布于:2002-07-19 16:17
例子如下:
typedef VOID (*VTPROC)(LPTSTR); void MyProc() { HINSTANCE hinstLib; VTPROC ProcAdd; BOOL fFreeResult, fRunTimeLinkSuccess = FALSE; // Get a handle to the DLL module. hinstLib = LoadLibrary(\"VideoTrimmerProj\"); if (hinstLib != NULL) { ProcAdd = (VTPROC)GetProcAddress(hinstLib, \"VBFunc\"); if (fRunTimeLinkSuccess = (ProcAdd != NULL)) (ProcAdd) (\"message via DLL function\\n\"); fFreeResult = FreeLibrary(hinstLib); } if (! fRunTimeLinkSuccess) printf(\"message via alternative method\\n\"); } ProcAdd的值总是NULL |
|
19楼#
发布于:2002-07-19 16:27
VC好比心旷神怡的原始森林,有清晰的本质面目,
VB则象一座盖好的房子,问你它用什么材料建成的,难! |
|
上一页
下一页