Use VB to packet third-party controls into a CAB package (used on the web page)

xiaoxiao2021-03-06  37

Use VB to packet third-party controls into a CAB package (used on the web page)

Due to the need for work, the author needs to display the CAD file on the web page (not CAD on the client machine). Due to time urgent, the current control is not too late, there is no way to search for a circle online. Found a software, the size is about 8 megabytes. Can be used to browse the DWG type file. Used, found that it is a DLL type control and has two attached DLL files.

If you want to use a control on a web page, the control needs to be a CAB type package. I found a tool to play the CAB package, named IExpress. However, if you use this tool to pack the INF file, the INF file is more complicated, and the manual writing is easy to have an error. Think of it, I think the VB combo tool can make a CAB file package. However, VB's packaging tools begin to choose a VB project. So use the VB to build a working name as the control name, compiled, then use the VB's own tool to package, package the type to select the installation package of the Internet type. When you choose a file, you have to remove excess files because this third-party control is not written in VB, so you don't have to with VB's run. Add the main controls of the third party control and the two attached DLLs to the package, and then start packaging.

After the package is finished, I have written a test page. I have no problem on this machine (because the control has been installed), so tested it on other machines, I can't install the control, display a red fork on the page. . Check the control installation log file under the IE Interim Folder, the content display control cannot be registered normally. Find some information on the Internet without finding the reason. Later, I used the Dependency Walker tool that comes with VC to view the DLL of the control, and the other three DLLs were also found in: MSVCR71.DLL, MSVCP71.DLL, MFC71.DLL. Just add these three files to the bag, after testing, everything is normal.

The script of using the control on the web page is as follows:

Bravaacx.cab </ title></p> <p></ HEAD></p> <p><Body></p> <p><! - If any controls on this page requires authorization, you must</p> <p>Create an authorized package file. Run LPK_TOOL.EXE to create</p> <p>The required LPK file. LPK_TOOL.EXE will be found in ActiveX SDK,</p> <p>Http://www.microsoft.com/intdev/sdk/sdk.htm. If you have Visual</p> <p>Basic 6.0 CD, you can find it under the / Tools / LPK_Tool directory.</p> <p>Here is an example of object tags:</p> <p><Object classid = "CLSID: 5220CB21-C88D-11CF-B347-00AA00A28331"></p> <p><Param name = "lpkpath" value = "lpkfilename.lpk"></p> <p></ Object></p> <p>-></p> <p><Object ID = "CTLBravaacxView" classid = "CLSID: 1BE73243-A85F-4385-939D-14D4845A286A"</p> <p>Codebase = "Bravaacx.cab # Version = 5, 1, 0, 5" width = "60%" Height = "60%"></p> <p><param name = "filename" value = "db_samp.dwg"> </ Object></p> <p></ Body></p> <p></ Html></p> <p>INF file content for packaging CAB controls is:</p> <p>Bravaacx.ocx's INF file</p> <p>DestDir can be 10 in the Windows directory, in 11 in the Windows / System (32) directory, or in the opcrache directory.</p> <p>[Version]</p> <p>Signature = "$ chicago $"</p> <p>Advancedinf = 2.0</p> <p>[DefaultInstall]</p> <p>CopyFiles = Install.files</p> <p>Registerocxs = registerfiles</p> <p>[Rinstallapplicationfiles]</p> <p>CopyFiles = Install.files</p> <p>Registerocxs = registerfiles</p> <p>[DestinationDIRS]</p> <p>Install.files = 11</p> <p>[SOURCEDISKSNAMES]]</p> <p>1 =% DiskName%, Bravaacx.cab, 1</p> <p>[Add.code]</p> <p>Bravaacx.dll = Bravaacx.dll</p> <p>Autorec.dll = Autorec.dll</p> <p>BacxView.ini = bacxview.ini</p> <p>DWG2DL.DLL = dwg2dl.dll</p> <p>Myrdrv.ini = myrdrv.ini</p> <p>Mfc71.dll = mfc71.dll</p> <p>MSVCR71.DLL = msvcr71.dll</p> <p>MSVCP71.DLL = msvcp71.dll</p> <p>[install.files]</p> <p>Bravaacx.dll = Bravaacx.dll</p> <p>Autorec.dll = Autorec.dll</p> <p>BacxView.ini = bacxview.ini</p> <p>DWG2DL.DLL = dwg2dl.dll</p> <p>Myrdrv.ini = myrdrv.ini</p> <p>Mfc71.dll = mfc71.dll</p> <p>MSVCR71.DLL = msvcr71.dll</p> <p>MSVCP71.DLL = msvcp71.dll</p> <p>[SOURCEDISKSFILES]]</p> <p>Bravaacx.dll = 1</p> <p>Autorec.dll = 1</p> <p>BacxView.ini = 1</p> <p>DWG2DL.DLL = 1</p> <p>Myrdrv.ini = 1</p> <p>Mfc71.dll = 1</p> <p>MSVCR71.DLL = 1</p> <p>MSVCP71.DLL = 1</p> <p>[Bravaacx.dll]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = YES</p> <p>CLSID = {1BE73243-A85F-4385-939D-14D4845A286A}</p> <p>Destdir = 11</p> <p>Fileversion = 5, 1, 0, 5</p> <p>[Autorec.dll]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 1, 3, 0, 43</p> <p>[BacxView.ini]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 0, 0, 0, 0</p> <p>[Dwg2dl.dll]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 1, 3, 0, 47</p> <p>[myrdrv.ini]</p> <p>File-win32-x86 = thiscabregisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 0, 0, 0, 0</p> <p>[Mfc71.dll]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 7, 10, 3077, 0</p> <p>[msvcr71.dll]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 7, 10, 3052, 4</p> <p>[msvcp71.dll]</p> <p>FILE-WIN32-X86 = thiscab</p> <p>RegisterServer = NO</p> <p>Destdir = 11</p> <p>Fileversion = 7, 10, 3077, 0</p> <p>[Registerfiles]</p> <p>% 11% / Bravaacx.dll</p> <p>Author: Cui Zhanmin</p> <p>http://www.j2soft.cn/</p> <p>Email: cuizm@163.com</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-65892.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="65892" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.043</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '_2FjqjPYd14IQ0FYjOVskoriilSC53hxZ95zxDsJqdwbdnqYE35RNeDqBEjAf4xg2DzrjkdX1ZcyK4Q7iq_2BXnp_2FQ_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>