c#.net环境下添加tlb引用失败,怎么回事
发生这种问题主要是没有将typelib信息写到注册表,只要调用RegisterTypeLibServer函数则可添加相关信息,参考下面代码。
以下宏定义是我为了简化com控件开发定义的。
//-----------------------------------------------------------------
//EXPORTS
//
//DllGetClassObject PRIVATE
//DllCanUnloadNow PRIVATE
//DllRegisterServer PRIVATE
//DllUnregisterServer PRIVATE
//-----------------------------------------------------------------
#pragma once
#include <assert.h>
#include <tchar.h>
#include <strsafe.h>
#include <Shlwapi.h>
#include "streams.h"
#include <atlbase.h>
#pragma comment(lib,"winmm.lib")
//Node:If you reference baseclass library,runtime library must use mt or mtd mode,because usually we compile baseclass in mt/mtd mode.
#if defined(DEBUG) || defined(_DEBUG)
#pragma comment(lib,"strmbasd.lib")
#else
#pragma comment(lib,"strmbase.lib")
#endif
#define BEGIN_COM_DECLARE \
extern HMODULE g_hModule = NULL;\
CFactoryTemplate g_Templates[] = \
{
#define END_COM_DECLARE(clsid,version,libraryname) \
};\
const int CLSID_STRING_SIZE = 39 ;\
void CLSIDtoString(const CLSID& clsid, TCHAR* szCLSID, int length)\
{\
assert(length >= CLSID_STRING_SIZE) ;\
LPOLESTR wszCLSID = NULL ;\
HRESULT hr = StringfromCLSID(clsid, &wszCLSID) ;\
assert(SUCCEEDED(hr)) ;\
lstrcpy(szCLSID,wszCLSID);\
CoTaskMemFree(wszCLSID) ;\
}\
LONG DeleteKey(HKEY hKeyParent, const TCHAR* lpszKeyChild)\
{\
HKEY hKeyChild ;\
LONG lRes = RegOpenKeyEx(hKeyParent, lpszKeyChild, 0,KEY_ALL_ACCESS, &hKeyChild) ;\
if (lRes != ERROR_SUCCESS)\
{\
return lRes ;\
}\
FILETIME time ;\
TCHAR szBuffer[256] ;\
DWORD dwSize = 256 ;\
while (RegEnumKeyEx(hKeyChild, 0, szBuffer, &dwSize, NULL,NULL, NULL, &time) ==
相关文档:
(一)把文件内容写入Access数据库的OLE对象字段中:
if (File.Exists(txtBrow.Text) != false) // 文本框txtBrow中内容为文件路径及文件名
{
//获取文件后缀
FileInfo p = new FileInfo(txtBrow.Text.Trim());
F_str_Type = ......
1. 打开新的窗口并传送参数:
传送参数:
response.write("<script>window.open(’*.aspx?id="+this.DropDownList1.SelectIndex+"&id1="+...+"’)</script>")
接收参数:
string a = Request.QueryString("id");
string b = Request.QueryString("id1");
2.为按钮添加对话框
Button1 ......
public sealed class DbOper
{
///<summary>
/// DbOper类的构造函数
///</summary>
private DbOper()
{
}
......
大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比如Windows中的一些功能,C++中已经编写好的一些方法)要重新编写代码,C#有没有方法可以直接都用这些原本已经存在的功能呢?答案是肯定的,大家可以通过C#中的DllImport直接调用这些功能。
DllImport所在的名字空间 using System.Runt ......
/// <summary>
/// 缩小裁剪图片
/// </summary>
/// <param name="int_Width">要缩小裁剪图片宽度</param>
/// <param name="int_Height">要缩小裁剪图片长度</param>
/// <param name="input_ImgUrl">要处理图片路径< ......