1樓:匿名使用者
有個最簡單的辦法了,
沒有樓上的那麼複雜
只需要把部件拖到窗體裡,然後把你的程式打個安裝包,用innosetup可以打包,打包時要注意加上註冊控制項命令,就ok了
2樓:匿名使用者
用createobject方法建立控制項,或者把對應的檔案打包在同一目錄,或者打包程序式裡面待使用的時候再動態釋放出來,還有兩種動態呼叫的方法可供參考:
(1)vb使用未註冊的activex**
(2)vb.net 通過類廠建立com物件的方法
vb.net中要創立com物件可以用new或者createobject,就像c++中的cocreateinstance,一步呼叫就直接建立了com物件。在它們之中包括了對cogetclassobject和createinstance的呼叫。
預設使用的類廠是iclassfactory。
一般情況下,new或createobject已經夠用了。但是如果我們的com元件增加了授權,也就是使用了iclassfactory2介面。那麼在vb中繼續用這種方法就不能建立我們所需要的元件了。
我們必須使用iclassfactory2。
在c++中實現很簡單。只需要通過cogetclassobject獲得iclassfactory2介面,然後呼叫它的createinstancelic來建立元件。
因此,在vb.net中,我們就可以仿照c++中的方法。下面是相關**:
首先宣告iclassfactory2的介面。iclassfactory2.idl如下:
[uuid(6ed6af97-f279-4d57-a392-0b8acf89426c),
version(1.0),
helpstring("inventorocidl type library 1.0")
]library inventorocidl
clsctx;
[object,
uuid(b196b28f-bab4-101a-b69c-00aa00341d07),
pointer_default(unique)
]inte***ce iclassfactory2 : iclassfactory
licinfo;
typedef struct taglicinfo * lplicinfo;
hresult getlicinfo(
[out, retval] licinfo * plicinfo
);hresult requestlickey(
[in] long dwreserved,
[out, retval] bstr * pbstrkey
);[local]
hresult createinstancelic(
[in] iunknown * punkouter,
[in] iunknown * punkreserved,
[in] guid* riid,
[in] bstr bstrkey,
[out, retval, iid_is(riid)] pvoid * ppvobj);}
}用midl編譯成iclassfactory2.tlb,並匯入到vb.net的工程當中。
宣告如下api用於得到iclassfactory2介面:
致此建立成功!
vb問題 高手請進! 10
3樓:缺鈣童子
我給你說一下我原來怎麼做的
老師教的在輸入資料時用控制項陣列的index我用的是caption 這樣可以輸入小數點計算時查詢運算子
將這個符合的前面和後面的字串分開
再進行運算
不知道這樣可不可以
4樓:匿名使用者
不知你的資料是怎麼輸入的,小數點又是怎麼輸入的,這些都不知道,不好說哦.
一般就是判斷在輸入資料裡是不是已經存在了小數點,如果沒有,是不是第乙個位置是0
5樓:匿名使用者
用instr可以判斷小數點的位置。例如算式存在字串s中那麼
instr(s,".")可以返回小數點的位置
vb程式設計的datagrid控制項問題,高手請進?急急急
6樓:匿名使用者
重新整理ado 和 datagrid
adodc1.refresh
datagrid1.refresh
這裡是顯示資料.
你要是用乙個ado控制項的話,就要每次改變ado資料來源.
我了解你的意思,不同條件,就代表ado的資料來源變了哇,你得每次改變資料來源,改變後重新整理ado控制項,這樣就可以出來了。
如:這是第一次顯示:adodc1.recordsource = "select * from table"
adodc1.refresh
顯示資料
這是第二次顯示:adodc1.recordsource = "select * from table where id=5"
adodc1.refresh
顯示資料
7樓:匿名使用者
連線是不用斷開的,查詢時最好是先清空前乙個記錄物件再建乙個.
vb程式設計問題,高手請進
8樓:
重排一下,你那樣寫太沒層次了,看著暈
private sub command1_click()dim a(5) '定義 a(0) - a(5) 6個for i = 0 to 4 '0-4 五次迴圈a(i) = i + 1
t = i + 1
if t = 3 then '這有個條件判斷,t=3,也就是i=2的時候才是true
print a(i);
a(t - 1) = a(i - 2)
else 'i<>2的時候就執行這裡a(t) = a(i)
end if
if i = 3 then a(i + 1) = a(t - 4)a(4) = 1
print a(i);
next i '到這裡再回到for i那裡,直到i=5為止end sub
其他的就沒什麼難的了,運算有點亂,用紙寫寫就行了
9樓:匿名使用者
0分有點懶
private sub command1_click() '當按鈕1被單擊時
dim a(5) 『定義乙個一維陣列,內部5個元素for i = 0 to 4 』i從1到4- -不懂?那基礎就.....for的結構自己看
a(i) = i + 1'
t = i + 1
if t = 3 then
print a(i);
a(t - 1) = a(i - 2)
else
a(t) = a(i)
end if
if i = 3 then a(i + 1) = a(t - 4)a(4) = 1
print a(i);
next i
end sub
vb問題?高手請進!!
10樓:翰林院裡掃地的
windows系統對字元採用了dbcs編碼,它是一套單位元組和雙位元組的混合編碼,即西文與ascii編碼一樣,是單位元組;中文則以兩位元組編碼。(注意,這是以位元組為準的。計算其字串長度只能用lenb(),因為lenb()是計算位元組數的。
)vb中採用的是unicode(國際標準化組織字元(iso)標準)來儲存和操作字串。它是全部用兩個位元組表示乙個字元的字符集。
而strconv()函式的作用就是作為unicode與dbcs之間的轉換。
strconv(parastr,vbfromunicode) 就是將parastr字串由unicode碼轉為dbcs碼
如果要將dbcs轉為unicode則是這個形式strconv(str,vbunicode)。
lenb(strconv(parastr,vbfromunicode))就是先將unicode碼轉為dbcs碼再計算長度,而dbcs碼的特性就是「英文算乙個,中文算兩個」,嘿嘿......
11樓:匿名使用者
len()函式是將英文本元或漢字文符都當成乙個字元lenb()函式是將英文本元或漢字文符都當成兩個字元要實現你說的功能你只好借助acs碼來加乙個判斷,如果不是字元那麼就用lenb()函式,如果是字元就用len()函式,只有這樣才可以解決你的問題。
希望對你有幫助!
12樓:
乙個漢字為兩個位元組,明白嗎?即乙個英文是8個bit,而乙個漢字是16bit了。1bye=8bit,不說了,怕越說你越糊塗。
VB的問題,請高手來
要在picture控制項或form裡使用print時.需將 autoredraw 屬性設定為true 或者將事件寫入 picture1 paint 事件中均可 private type student xm as string 4 bysj as date ksfs as single end ty...
物理難題,高手請進物理問題新,物理難題,高手請進!!!!!!物理問題新
設角ead為 則小球轉到最低點高度差為1.5l 0.5l cos 由機械能守恆易得最大速度vm,以之為線速度可算出最大向心力,可得一關於 的不等式求出 最小值。如果如題意只是圓周運動,不要求完整的圓周運動,則這樣就可以了。先求最遠情況 設繞釘子 d點 圓周運動半徑為r 因 繩子承受最大拉力為9mg ...
手機電池併聯使用問題高手請進手機電池併聯使用問題
俺是修手機的來,我試過這麼幹,但自跟你的有點bai差別,我的是u8800,當時手du裡有很zhi多雜牌電池,全是3.7v的,我把dao10塊電池全部焊接串連 一定要焊接串連,接觸不良就沒意義了 做成了乙個移動電源,最後包裝了一下 用絕緣膠帶包,最外面是個方形精裝茶葉鐵盒子,嘿嘿!就成了,忘了說了,介...