Packaging ActiveX Controls

Ceph企业级调优实战 开发人员经过多年的研究,已经在Linux操作系统和Ceph自身性能上进行了优化。但是,每套Ceph集群的规模配置都有差别,很难给出一个万能的参数让性能达到预期。因此,你需要在Ceph集群建设完毕后对集群的性能进行测试,获取相应的测试指标,并针对测试指标对Ceph集群进行调优。当然,要综合考虑各方面因素进行调优,避免调好了一个性能指标,而使另一个性能指标降低,始终不能获得良好的整体性能。理想的情况是,尽量减少软件层面带来的性能损耗,尽可能大地发挥硬件的性能优势。 阅读详情
 
This article introduces a data-compression technology and associated tool set that you can use to package your Microsoft ActiveX control for faster, more efficient downloading over the Internet or an intranet. (This same technology and tool set can be applied to Microsoft Win32 applications, Java classes, and Java libraries.)
·                 Cabinet Files
·                 Packaging the Sample ActiveX Control
·                 Cabarc.exe
·                 INF Files
Cabinet Files
For a number of years, Microsoft used cabinet (.cab) files to compress software that was distributed on disks. Originally, these files were used to minimize the number of disks shipped with packaged product; today, .cab files are used to reduce the file size and the associated download time for Web content that is found on the Internet or corporate intranet servers.
The .cab file format is a nonproprietary compression format, also known as MSZIP, that is based on the Lempel-Ziv data-compression algorithm. (Other compression formats might also be supported later.)
Accessing Controls Stored in Cabinet Files
An ActiveX control is identified by the OBJECT object in an HTML file. If the control has been stored in a .cab file, OBJECT must include a CODEBASE attribute that specifies the URL for this .cab file. The following excerpt from a sample HTML file demonstrates how the OBJECT object and CODEBASE attribute are used.
<OBJECT CLASSID="clsid:dcf0768D-ba7a-101a-b57a-0000c0c3ed5f"
    CODEBASE="http://webserver/time.cab"
    ALIGN="CENTER" WIDTH=270 HEIGHT=26 ID="T1"><PARAM NAME="Interval" VALUE=1000>
    <PARAM NAME="Enabled" VALUE=1></OBJECT>
Microsoft Internet Explorer 4.0 or later versions handle the OBJECT object and the CODEBASE attribute in the following manner.
1.          Parses the OBJECT object and searches for the CODEBASE attribute. If the CODEBASE attribute is absent or is preceded by a URL-to-object index server in the CodeBaseSearchPath, this index is used to retrieve the file.
2.          Locates the .cab file identified by the CODEBASE attribute.
3.          Expands the files found in the .cab file.
4.          Copies the expanded files to the user's computer (the default directory is /windows/occache).
5.          Registers the objects and/or files that require registration.
6.          Calls the Component Object Model (COM)CoCreateInstance function to create an instance of the specified object.
Signing Cabinet Files
A .cab file can be digitally signed like an ActiveX control. A digital signature provides accountability for software developers: The signature associates a software vendor's name with a given file. A signature is applied to a .cab file (or control) using the Microsoft Authenticode technology.
The .cab tool set assists software developers in applying digital signatures to .cab files by allowing a developer to allocate space in the .cab file for the signature.
Microsoft Cabinet Software Development Kit (SDK)
The Cabinet Software Development Kit provides developers with the components needed to use the Microsoft .cab file technology, or build .cab file management tools.
One of the tools available in the Cabinet Software Development Kit is Cabarc.exe. This command-line application enables you to compress an ActiveX control and store it in a .cab file. In addition to creating .cab files, you can use Cabarc.exe to list the contents of or extract files from an existing .cab file.
For an example that demonstrates how you can use Cabarc.exe to package an ActiveX control, see Packaging the Sample ActiveX Control.
For more information about Cabarc.exe and its options, see Cabarc.exe.
Packaging Strategies for Multiple Platforms
Internet Explorer 4.0 or later and ActiveX Controls can run on Macintosh and Intel x86 computers, as well as on any of several RISC machines. As a result, it's important that control developers create, test, and bundle their control's binaries for all platforms.
This section outlines three packaging strategies for supporting multiple platforms:
·                 Multiple .cab files with the .inf saved in a separate .cab file
·                 Multiple .cab files with the .inf and x86 binary bundled in a single .cab file
·                 A single .cab file
Multiple .cab files with .inf in separate .cab
The first strategy requires that one .cab file contain a Microsoft Windows 95 or later .inf file, the second contain the x86 binary, the third contain the Macintosh binary, and so on. Using this strategy, the CODEBASE attribute of the OBJECT object specifies the relative path for the .cab file that contains the Windows 95 or later .inf file.
The primary benefit of this strategy is reduced file size at download timeonly the first .cab file containing the .inf file and a second .cab file with the appropriate binary for a given platform are downloaded.
The one drawback of this strategy is that two digital certificates will appear (one certificate per .cab file).
Multiple .cab files with .inf and x86 binary bundled in single .cab
The second strategy requires that one .cab file contain both the Windows 95 or later .inf file and the x86 binary. The remaining .cab files contain the Macintosh and RISC binaries (one binary per .cab file). Using this strategy, the CODEBASE attribute of the OBJECT object will specify the relative path for the .cab file that contains the Windows 95 or later .inf file and the x86 binary.
This strategy is most beneficial for controls that are primarily targeted at the x86 platform. Another benefit of this strategy is reduced file size at download time.
The one drawback of this strategy is that Macintosh or RISC users will have to wait for the x86 binaries to download.
Single .cab file
The third strategy requires that a single .cab file contain all binaries.
This strategy is most beneficial for small controls that have no dependent dynamic-link libraries (DLLs) and that are primarily targeted at an intranet.
The drawbacks of this solution are that it does not optimize for dependent DLLs that might already be on the user's computer, and this solution might not be acceptable on some intranets.
Packaging the Sample ActiveX Control
This section describes how a single .cab file was created for the sample digital clock control. This .cab file contains a Windows 95 or later .inf file as well as the x86 binary for the control.
This example is based on the second packaging format described in the previous section of this article. However, the sample package is incomplete: a couple of final steps, which were omitted, require that a separate .cab file be created for the Macintosh binary as well as for each of the supported RISC platforms. In addition to creating the separate .cab files, the .inf file would need to be modified to point to these additional .cab files. These steps were omitted to simplify the example.
Installing the Cabinet Development Kit
To package an ActiveX control, it's necessary to install Cabarc.exe, a tool you download with the Cabinet Software Development Kit. When the Cabinet Software Development Kit is installed, you can begin using the tools it contains to build the necessary .cab files for your control.
Creating the .inf File
As previously stated, the sample .cab file bundles a Windows 95 or later .inf file with an x86 binary. The bundled .inf file contains information about the control, such as its name, its class identifier (CLSID), the name and location of required DLLs, whether the control requires registration, and so on. This .inf file has the following format.
Show Example
[version]
    signature="$CHICAGO___FCKpd___5quot;
    AdvancedINF=2.0
 [Add.Code]
    time.ocx=time.ocx
    msvcrt.dll=msvcrt.dll
    mfc42.dll=mfc42.dll
    olepro32.dll=olepro32.dll
 [time.ocx]
    file-win32-x86=thiscab
    clsid={DCF0768D-BA7A-101A-B57A-0000C0C3ED5F}
    FileVersion=1,0,0,0
    RegisterServer=yes
 [msvcrt.dll]
    FileVersion=4,20,0,6164
    hook=mfc42installer
 [mfc42.dll]
    FileVersion=4,2,0,6256
    hook=mfc42installer
 [olepro32.dll]
    FileVersion=4,2,0,6068
    hook=mfc42installer
 [mfc42installer]
    file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
    run=%EXTRACT_DIR%/mfc42.exe
If you're bundling the .inf file and your control's x86 binary in a single .cab file, and if your control was written with Microsoft Foundation Classes (MFC) 4.2, you can use the previous example after you replace all occurrences of the sample control name (time.ocx) with the name of your control and replace the sample control's CLSID with the CLSID for your control.
If you're organizing your files differently, or if your control requires DLLs other than the Microsoft Visual C++; 4.2 DLLs, you'll need to modify the .inf file to accommodate your unique requirements. Note that if your control requires that a DLL be registered before the control, its corresponding entry in the .inf file must precede the control's entry in the file. Also note that the order of the source files in the command line that is passed to Cabarc.exe must match the order of the file references in the .inf file.
For more information about .inf files and the section tags found within them, see INF Files.
Building the .cab File
After you've installed Cabarc.exe and built the .inf file for your package, you can build the .cab file. In the case of the sample .cab file, this entailed running Cabarc.exe with the following arguments.
cabarc.exe -s 6144 N time.cab time.ocx time.inf
This command created a .cab file named Time.cab, which contains a compressed x86 binary for the sample control as well as a compressed version of the corresponding .inf file. The -s 6144 switch specifies that Cabarc.exe should allocate 6144 bytes for a digital certificate. (Code signing with digital certificates is described briefly in the next section).
For more information about Cabarc.exe and its use, see Cabarc.exe.
Signing the .cab File
When Internet Explorer 4.0 or later versions are running at the default security level, any object identified by the OBJECT object on an HTML page must be digitally signed. Digital signatures are created using Authenticode technology. A digital signature associates a software vendor's name and a unique public key with a file that contains an ActiveX object (ensuring some sort of accountability on the part of the object's developer).
Before you purchase a certificate for your control's .cab file from a vendor, you can use the test certificate provided by Microsoft for verification purposes. The following steps were required to add the software development kit (SDK) test certificate to the sample control's .cab file.
1.          Use Setreg.exe, which is one of the tools you download with Authenticode technology, to validate the test root in the trust hierarchy.
setreg 1 true
Setreg.exe replaces the Wvtston.reg and Wvtstoff.reg files that were shipped as part of the ActiveXSDK. Validation of the test root means that Internet Explorer 4.0 or later will treat a .cab file signed under the test root as though it included credentials.
2.          Use the Makecert.exe utility, which is another one of the tools you download with Authenticode technology, to create a key pair (the pair consists of a public and a private key).
makecert -u:mykey -n:CN=mysoftwarecompany cert.cer
In addition to creating the key pair, Makecert.exe associates the key pair with an X.500 distinguished name and creates an X.509 certificate that is signed by the root key (and that binds your name to the public part of the new key pair).
3.          Use the Cert2SPC.exe utility, another one of the tools you download with Authenticode technology, to generate a Software Publishing Certificate (SPC) (.spc file).
cert2spc root.cer cert.cer cert.spc
4.          Use the Signcode.exe utility (and accompanying wizard), which also comes with Authenticode technology, to sign the .cab file.
signcode -prog mycab.cab -spc cert.spc -pvk mykey
If Signcode.exe is successful, it will have embedded a public key certificate standard (PKCS) #7 certificate in the .cab file.
If you package your control in one or more .cab files, each file must be digitally signed.
For information about X.500 distinguished names, X.509 certificates, SPCs, or PKCS #7 certificates, see Signing and Checking Code with Authenticode.
Cabarc.exe
Cabarc.exe is a utility that creates, lists, and extracts the contents of cabinet (.cab) files. Cabarc uses a command-line interface similar to that of popular archiving tools. Cabarc supports wildcards and recursive directory searches.
Cabarc is used as follows:
cabarc [<options>] <command> [<file list>]
Three commands are currently supported:
·                 n (create a new .cab file)
·                 l (list contents of an existing .cab file)
·                 x (extract files from a .cab file)
Creating New .cab Files (n Command)
Cabinets are created by using the n command, followed by the name of the cabinet to create, followed by a file name list, as shown in this example:
cabarc n mycab.cab prog.c prog.h prog.exe readme.txt
This command creates the cabinet Mycab.cab, containing the files Prog.c, Prog.h, Prog.exe, and Readme.txt, in a single folder, using the default compression mode, MSZIP.
Cabarc supports wildcards in the file name list, as shown in the following example.
cabarc n mycab.cab prog.* readme.txt
Options (-p, -P, -r, -s, -i, -m, -l, +, @)
Path preservation (-p)
Directory names are not preserved in the cabinet (by default); only the file name component is stored. For example, the following command stores Prog.c in the cabinet.
cabarc n mycab.cab c:/source/myproj/prog.c
To preserve paths, use the -p option as shown in the following example.
cabarc -p n mycab.cab c:/mysource/myproj/prog.c
This command puts mysource/myproj/prog.c in the cabinet. Be aware that the c:/ prefix is still removed from the file name: Cabarc cannot store absolute paths in the cabinet nor extract such absolute paths.
Path stripping (-P)
The path stripping option, -P, is used for preserving part (but not all) of a path. The following example shows how this option can archive everything in the c:/mysource/myproj/ directory, but store only the myproj/ component of the path.
cabarc -p -P mysource/ n mycab.cab c:/mysource/myproj/prog.c 
The -P option strips any strings that begin with the provided string. Wildcards are not supported by the -P option; it is a simple text match. Absolute path prefixes, such as c:/ or /, are stripped before the comparison takes place. Do not include absolute path prefixes when using the -P option.
The -P option can be reused to strip out multiple paths. Cabarc builds a list of all paths to be stripped and applies only the first one that matches. Consider the following example.
cabarc -p -P mysrc/ -P yoursrc/ n mycab.cab c:/mysrc/myproj/*.* d:/yoursrc/yourproj/*.c
The trailing slash at the end of the path is important: Entering -P mysrc instead of -P mysrc/ adds files as /myproj/file name.
Recursive directory search (-r)
Cabarc has an option, -r, for a recursive directory search. Using this option archives files in a directory and all of its subdirectories. For example, the following command example archives all files ending in .h that are in c:/msdev/include/, c:/msdev/include/sys, and c:/msdev/include/gl (assuming these directories exist on your system).
cabarc -r -p n mycab.cab c:/msdev/include/*.h
The -p option is used here to preserve the path information when the files are added to the cabinet. Without this option, only the file names would be stored.
Reserving space for digital signatures (-s)
Cabarc can reserve space in the cabinet for a code signature. This is done with the -s option, which reserves a specified amount of empty space in the cabinet. For code signatures, reserve 6,144 bytes. Consider the following example for doing so.
cabarc -s 6144 n mycab.cab test.exe
The -s option does not actually write the code signature; it reserves space for it in the cabinet. Use the code signature utility to fill out the code signature.
Setting the cabinet ID (-i)
Cabinet files have a 16-bit cabinet identification field that is designed for application use. The default value of this field is zero; however, use the -i option of Cabarc to set this field to any 16-bit value, as shown in the following example.
cabarc -i 12345 n mycab.cab test.exe
Setting the compression type (-m)
Set the compression type with the -m option. The default compression type for a cabinet is MSZIP. Only MSZIP compression ( -m MSZIP ) and no compression ( -m NONE ) are supported. The following command stores files in the cabinet without compression.
cabarc -m NONE n mycab.c *.*
Creating a file list from a file (-l)
Cabarc can create a file list from a file. Cabarc compiles a list of file inputs from a text file (instead of from the command line), using the -l option, followed by the name of the file from which to take the inputs. Consider the following example.
cabarc -l filelist.txt n mycab.cab
The -l option can be reused to retrieve file lists from multiple files. Cabarc does not check for duplicate files. If the same physical file appears in multiple file lists, it gets added to the cabinet multiple times.
The -l option can be combined with file names on the command line. The files from the -l option are added first. Consider the following example.
cabarc -l filelist1.txt -l filelist2.txt n mycab.cab *.c *.h
Beginning new folders (+)
All files are put in one folder in the cabinet (by default). It is possible to instruct Cabarc to begin a new folder by using the plus sign (+) for the file to be added, as shown in the following example.
cabarc n mycab.cab test.c main.c + test.exe *.obj
This command creates the cabinet Mycab.cab with one folder containing Test.c and Main.c, and a second folder containing Test.exe and all files matching *.obj.
Generating a file listing from an existing file list (@)
Cabarc can input its list of files from a text file, instead of from the command line, by using @files ("at files"). This is done by using the @ symbol to prefix the name of the file that contains the file list. For example:
cabarc n mycab.cab @filelist.txt
The text file must list the physical file names of the files to be added, one per line. As is the case when specifying file names on the command line, the plus sign can be used as a file name to specify the beginning of a new folder. If a file name contains any embedded spaces, it must be enclosed in quotes, as shown here:
test.c
myapp.exe
"output file.exe"
The reason for requiring quotes is that each physical file name might be followed on the same line by an optional logical file name, which specifies the name under which the file will be stored in the cabinet.
test.c myapp.c
myapp.exe
"output file.exe" example.exe
If the logical file name contains spaces, it must also be enclosed in quotes. Note that the logical file name overrides the -p (preserve path names) and -P (strip path name) optionsthe file will be added to the cabinet exactly as indicated. Wildcards are allowed in the physical file name, but in this situation a logical file name is not allowed.
The @ feature can be used multiple times to retrieve file lists from multiple files. Cabarc does not check for the presence of duplicate files, so if the same physical file appears in multiple file lists, it will be added to the cabinet multiple times.
The @ feature can be combined with file names on the command line. Files are added in the order in which they are parsed on the command line. For example:
cabarc n mycab.cab @filelist1.txt *.c @filelist2.txt *.h
The @ feature is available only when creating cabinets, not when extracting or listing cabinets
Listing Contents of Existing Files
The list cabinet contents command, l, makes it possible to view the contents of a cabinet. Consider the following example.
cabarc l mycab.cab
Cabarc displays the Set ID in the cabinet (see the -s option for cabinet creation). Cabarc also displays the following file information: size, date, time, and attributes.
Extracting Files from Cabinet Files
The extracting cabinets command, x, extracts files from a cabinet. The simplest use of the x command is shown in the following example, which extracts all files from the cabinet.
cabarc x mycab.cab
Alternatively, it is possible to selectively extract files by providing a list of file names or a list of file names and wildcards. Consider the following example.
cabarc x mycab.cab readme.txt *.exe *.c
Full paths (if they are present in the cabinet), by default, are not preserved upon extraction. For example, if mysrc/myproj/test.c is in the cabinet, the command cabarc x mycab.cab causes Test.c to be extracted into the current directory. To preserve file names upon extraction, the -p option must be used. This option causes any required directories to be created, if necessary.
By default, the extracted files are stored in the current directory (and its subdirectories, if -p is used). However, it is possible to specify a destination directory for the extracted files. This is accomplished by appending a directory name to the command line. The directory name must end in a backslash ( / ). For example:
cabarc x mycab.cab c:/somedir/
cabarc x mycab.cab *.exe c:/somedir/
The extracting cabinets option considers only the file name component in the matching process; the path name is ignored. For example, cabarc x mycab.cab test.c causes mysrc/myproj/test.c to be extracted to the current directory as Test.c, as will cabarc x mycab.cab *.c (which also extracts any other files matching *.c).
INF Files
An .inf file contains data that Windows 95 or later and Microsoft Windows NT 4.0 or later use to load and register a bundled control (as well as any files required by that control). The following topics describe each section of the .inf file.
The [version] Section of the .inf File
The first section in the .inf file is the [version] section. In the sample .inf, this section has the following format.
[version]
    signature="$CHICAGO___FCKpd___62quot;
    AdvancedINF=2.0
The signature= tag specifies that the .inf version is compatible with Windows 95 or later and Windows NT 4.0 or later.
The AdvancedINF= tag identifies the version of Advpack.dll that Internet Explorer 4.0 or later must load in order to parse this .inf file. In this case, version 2.0 is required.
The [Add.Code] Section of the .inf File
The second section of the .inf file is the largest section. In addition to the section immediately following the [Add.Code] tag, this section includes the subsections that are identified by the [time.ocx], [msvcrt.dll], [mfc42.dll], and [olepro32.dll] tags.
The [Add.Code] section maps files required by a given .ocx file to subsections in the .inf file. In the sample .inf file, this section has the following format.
[Add.Code]
    time.ocx=time.ocx
    msvcrt.dll=msvcrt.dll
    mfc42.dll=mfc42.dll
    olepro32.dll=olepro32.dll
The first line in this section maps Time.ocx (the file that contains the sample control) to a subsection of the same name. The second, third, and fourth lines map DLLs that the control requires to corresponding subsections in the .inf file. (The names of the .inf subsections are not restricted to the mapped file name; these names were chosen strictly for convenience in the sample.)
Because the sample control was created with MFC 4.2, the three named DLLs are required on a user's computer before the control will successfully run.
The [time.ocx] subsection of the [Add.Code] section
The [time.ocx] subsection has the following format.
[time.ocx]
    file-win32-x86=thiscab
    clsid={DCF0768D-BA7A-101A-B57A-0000C0C3ED5F}
    FileVersion=1,0,0,0
    RegisterServer=yes
·                 The first line in this subsection specifies that the x86 binary is found in the same .cab file as the .inf file.
·                 The second line specifies the control's CLSID.
·                 The third line specifies the control's version.
·                 The fourth line specifies that Internet Explorer 4.0 or later should register the control (using the specified CLSID and version number).
The [msvcrt.dll] subsection of the [Add.Code] section
The [msvcrt.dll] subsection has the following format.
[msvcrt.dll]
    FileVersion=4,20,0,6164
    hook=mfc42installer
The first line specifies the file version from the fixedfileinfo section of the DLL's version resource.
Note that the Properties dialog box in Windows Explorer only shows a portion of the version number. For example, in the case of Msvcrt.dll, the Properties dialog box will return 4.20.6164 as the version number (ignoring the third section [0] in the 4,20,0,6164 series).
The second line in this subsection, hook=mfc42installer , identifies a section in the .inf file that points to a .cab file that contains the required DLL (Msvcrt.dll).
The [mfc42.dll] subsection of the [Add.Code] section
The [mfc42.dll] subsection has the following format.
[mfc42.dll]
    FileVersion=4,2,0,6256
    hook=mfc42installer
For more information about these entries, see The [msvcrt.dll] subsection of the [Add.Code] section.
The [olepro32] subsection of the [Add.Code] section
The [olepro32.dll] subsection has the following format.
[olepro32.dll]
    FileVersion=4,2,0,6068
    hook=mfc42installer
For more information about these entries, see The [msvcrt.dll] subsection of the [Add.Code] section.
The [mfc42installer] Section of the .inf File
The final section in the .inf file is the [mfc42installer] section. In the sample .inf file, this section has the following format.
[mfc42installer]
    file-win32-x86=http://activex.microsoft.com/controls/vc/mfc42.cab
    run=%EXTRACT_DIR%/mfc42.exe
The file-win32-x86= tag specifies that the .cab file containing the MFC 4.2 DLLs is located at the specified site.
The run= tag specifies that the .cab file contains a self-extracting executable named Mfc42.exe.
 
 
cab包自动加载更新 1.实现了ocx对外接口 2.可隐藏主界面 3.实现安全接口IObjectSafety 4.实现cab包的自动加载 5.实现cab版本自动更新 立即下载

相关推荐

Clock.ocx文件

Clock.ocx文件

ActiveX Control学习笔记3

Technorati 标签: ActiveX Control,Properties,Methods,Events,Property Pages,Distribution来自MSDN-2001-OCT: Visual Tools and Languages/Visual Studio 6.0 Documentation/Visual Basic Documentation/Using Visua

925

Microsoft Make CAB Tools

Microsoft Make CAB Tools

Windows CE开发常见问题解答

转自: http://blog.csdn.net/slyzhang/article/details/6110490 1.怎样在一个控件获得焦点时打开软键盘?比如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白//隐藏输入面板BOOL LowerSip(){BOOL fR...

weixin_30383279的博客 4812

Clock.ocx

Clock.ocx控件本身

嵌入式SD/TF卡通用协议-SDIO协议

为了驱动SD卡,首先的第一步就是观察SD卡引脚接线情况,通常我们在画原理图时,都是使用的SD卡卡槽与MCU进行接线。SD卡可以使用SDIO协议和SPI协议进行通信,这里我们主要介绍SDIO协议。下图中的TF卡只是容量小一点的SD卡。以F1C100S为例,接线图如下所示:我们发现上图中的TF卡使用的协议为SDIO协议,主要有4根数据线,1根命令线,1根时钟线组合而成。为了驱动这个SD/TF卡我们就需要去了解SDIO协议的时序。

qq_1033275663的博客 3050

Microsoft .NET Compact Framework 开发常见问题解答

msdn上的地址http://www.microsoft.com/china/msdn/library/NetFramework/netcompactframework/debugdestime.mspxMicrosoft .NET Compact Framework 开发的常见问题解答。 这个 FAQ 有部分是通过编辑公共 .NET Compact Framework 新闻组 (microsof

whale_chen的专栏 1万+

别再为PT100测温发愁了!手把手教你用ADS1247+STM32搞定高精度温度采集(附完整代码)

本文详细介绍了如何使用ADS1247与STM32构建高精度PT100测温系统,涵盖硬件设计、SPI配置、温度计算及调试技巧。通过24位ADC和内置PGA,实现0.1℃级精度,适用于工业自动化和医疗设备。附完整代码和常见问题解决方案,助你快速掌握高精度温度采集技术。

weixin_42524703的博客 343

Windows CE开发常见问题解答(转载)

 .怎样在一个控件获得焦点时打开软键盘?比如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入——SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白 //隐藏输入面板 BOOL LowerSip() { BOOL fRes = FALSE; SIPINFO si; memset( &si, 0, sizeof( si

1480

C语言的文件读取与写入操作

学了一年的C语言了,现在回过头来做一下总结。并且博客开了挺长一段时间却没有谢什么实际的东西。现在做下总结,对之后的学习帮助应该挺大的。与大家共勉! 现在,我先来介绍一下C语言的文件读取与写入的原理和具体操作方法。 C语言文件读取与写入是通过将文件看成一个字符序列进行读入和写出的。所以读取与写入文件就用到了指针,而这个指针是一个特殊的指针,我们称为文件指针。 指针名称是

wzyxdwll的博客 3万+

深入解析:如何基于开源p-net快速开发Profinet从站服务

开源p-net协议栈为工业设备开发者打开了通往Profinet世界的大门。随着工业互联网的发展,软协议栈方案将在边缘计算领域展现更大潜力。该文章完整实现了PROFINET从站的核心功能,可直接作为产品开发的基础框架。实际部署时需根据具体硬件平台调整网络驱动和实时性配置。

极地星辰 3879

关于ActiveX的IE在线安装包的制作

第一步: 在MSDN中搜索MicroSoft Cabinet SDK , 然后Down load the cabinet software Development kit 下载这个SDK,安装,安装完后bin目录下有cabarc.exe 第二步 制作inf文件 在MSDN中查找Q167158 "How to :...."讲诉了怎样如何制作一个 inf文...

wang20051的专栏 340

深入解析EXI协议在ISO15118-2命令测试中的编解码实践

本文深入探讨了EXI协议在ISO15118-2车桩通信标准中的关键作用与实践方法。EXI编解码测试是确保通信准确性与效率的核心环节,文章详细介绍了从搭建测试环境、选择工具库到编写完整测试代码的全过程,并分析了结果差异的常见原因与调试技巧,为电动汽车充电系统的开发者提供了实用的技术指南。

potato的博客 1048

Linux内核深入理解定时器和时间管理(6):x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet)

Linux内核深入理解定时器和时间管理 x86_64 相关的时钟源(kvm-clock,tsc,acpi_pm,hpet) rtoax 2021年3月 在原文基础上,增加5.10.13内核源码相关内容。 概览 结构体 ------------------------------------------------------- struct clocksource; struct clock_event_device; `clockevents_register_device

RToax 5083

软考软件评测师备考避坑指南:过来人告诉你这5个章节最容易丢分(附2024最新考纲解析)

本文为软考软件评测师考生提供备考避坑指南,深度解析5个高频失分章节,包括标准化与信息化基础、中间件技术、软件测试模型、白盒测试覆盖准则和性能测试指标。文章结合2024最新考纲,分享实战技巧和记忆口诀,帮助考生精准打击失分重灾区,提升备考效率。

weixin_29223603的博客 467

基于STM32设计的自动追光系统(项目资料ID:2)

基于STM32设计的自动追光系统主要由光敏采集电路、单片机核心板电路和步进电机控制电路构成。通过光敏电阻采集环境光强信息,经 STM32 单片机处理后,控制步进电机转动,实现对光源的自动追踪。该系统具有响应速度快、追踪精度较高等优点,可应用于太阳能发电、智能照明等领域,为相关场景提供高效的光资源利用方案。

以培养嵌入式工程师为己任 1万+

x86中断完全版----时钟服务(Clock Service -- INT 1AH)

00H - 读取时钟“滴答”计数01H - 设置时钟“滴答”计数  02H - 读取时间  03H - 设置时间  04H - 读取日期  05H - 设置日期  06H - 设置闹钟 07H - 闹钟复位 0AH - 读取天数计数 0BH - 设置天数计数 80H - 设置声音源信息 ------------------------------------------------------

Have an aim in life, or your energies will be wasted. 1801

Palantir如何利用Ontology构建企业级数据地图

Palantir通过"本体论"(Ontology)技术构建动态数据地图,将多源异构数据转化为可操作的业务知识网络。该技术突破传统ETL模式,建立覆盖全组织的语义层,将原始数据映射为"客户""订单"等业务对象及其关联关系,形成可推理的语义网络。核心Foundry平台提供本体管理工具(OMA)和开发套件(OSDK),支持从数据连接到应用开发的全流程。虽然采用专有实现而非标准本体语言,但该架构成功解决了数据孤岛问题,赋能复杂决策分析

Learning 1788

ActiveX Control学习笔记2

Technorati 标签: ActiveX Control,UserControl,Paint,Resize来自MSDN-2001-OCT: Visual Tools and Languages/Visual Studio 6.0 Documentation/Visual Basic Documentation/Using Visual Basic/Component Tools Guide

1691

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Active X控件在IE上自动下载并注册

Active X控件在调用证书时是非常常见的。为了方便不懂计算机的人更好的操作,我们经常将Actvice X控件嵌入到项目中,使其项目运行时自动检测是否有该控件,如没有,则进行下载和注册。

Aleyns的博客 4536

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

ActiveX Controls

MSDN上第一句说:ActiveX Controls本质上是一个OLE对象。实现了IUnknown接口。那么,什么是OLE对象()。什么是IUnknown接口(OLE)。

673

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: How To Use WordBasic Functions in an MFC Automation Client for Word 97, Word 2000, Word 2002, or Word 2003
下一篇: Using ActiveX Controls to Automate Your Web Pages
AIRFLYNET
博客等级 码龄25年 6粉丝 12原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值