在c語言中每一個變量都有兩個屬性一個是值,一個是址。比如inta=2;變量a的值是2,變量a的地址,可以用取地址
成都地區(qū)優(yōu)秀IDC服務(wù)器托管提供商(成都創(chuàng)新互聯(lián)公司).為客戶提供專業(yè)的成都服務(wù)器托管,四川各地服務(wù)器托管,成都服務(wù)器托管、多線服務(wù)器托管.托管咨詢專線:028-86922220
操作符
獲取,即a。因此以C語言的函數(shù)傳遞中具備兩種方式傳遞參數(shù),一種是傳址,一種傳值。比如voidf1(intv){;}//函數(shù)f1v
給你個網(wǎng)站看
可在線將vb.net代碼轉(zhuǎn)成c#的,我用過,還可以的,但是轉(zhuǎn)后也要改動一些。這里還有將c#轉(zhuǎn)vb.net的。
這是我轉(zhuǎn)的:
string[] ArrValue = new string[43];
int Nums;
public void Page_Load(object Sender, EventArgs E)
{
int I;
if (!IsPostBack) {
for (I = 1900; I = 2101; I++) {
ListItem IItem = new ListItem();
IItem.Text = (string)I;
if (I == Year(Now)) {
IItem.Selected = "True";
}
DropYear.items.add(IItem);
}
for (I = 1; I = 12; I++) {
ListItem IItem = new ListItem();
IItem.Text = (string)I;
if (I == Month(Now)) {
IItem.Selected = "True";
}
DropMonth.items.add(IItem);
}
}
DispDetail(Conversion.Val(DropYear.SelectedItem.Text), Conversion.Val(DropMonth.SelectedItem.Text));
}
public void DispDetail(int YYear, int MMonth)
{
System.DateTime theDate;
int theYear;
int theMonth;
int theDay;
int theWeek;
int theFirstNum;
int NumOfMonth;
int i;
string theStr;
theYear = YYear;
theMonth = MMonth;
theDay = 1;
//獲得所要查詢的月的第一天日期
theDate = DateSerial(theYear, theMonth, theDay);
//確定所要查詢的第一天是星期幾
theWeek = weekday(theDate);
theFirstNum = theWeek;
//確定所要查詢的月的天數(shù)
NumOfMonth = GetDayNum(theyear, themonth);
for (i = 0; i = 41; i++) {
ArrValue(i) = "";
}
for (i = 0; i = NumOfMonth - 1; i++) {
ArrValue(theFirstNum - 1 + i) = i + 1;
}
}
public object GetDayNum(int YYear, int MMonth)
{
object functionReturnValue = null;
if (MMonth == 1 | MMonth == 3 | MMonth == 5 | MMonth == 7 | MMonth == 8 | MMonth == 10 | MMonth == 12) {
functionReturnValue = 31;
}
else {
if (MMonth == 4 | MMonth == 6 | MMonth == 9 | MMonth == 11) {
functionReturnValue = 30;
}
else {
if (((YYear % 4 == 0) (YYear % 100 != 0)) | (YYear % 400 == 0)) {
functionReturnValue = 29;
}
else {
functionReturnValue = 28;
}
}
}
return functionReturnValue;
}
首先是C的DLL(我的項目叫ConsoleApplication2.dll):
#include?Windows.h
//?導(dǎo)出Test函數(shù),供外部使用
extern?"C"?__declspec(dllexport)?BSTR?__cdecl?Test(LPSTR?p);
BOOL?WINAPI?DllMain(
HINSTANCE?hinstDLL,
DWORD?fdwReason,
LPVOID?lpReserved)
{
switch?(fdwReason)
{
case?DLL_PROCESS_ATTACH:?break;
case?DLL_THREAD_ATTACH:?break;
case?DLL_THREAD_DETACH:?break;
case?DLL_PROCESS_DETACH:?break;
}
return?TRUE;
}
BSTR?__cdecl?Test(LPSTR?p)
{
p[0]?=?'X';
return?SysAllocString((BSTR)p);
}
然后是VB.Net項目:
Imports?System.Runtime.InteropServices
Imports?System.Text
Module?Module1
REM?生成的是ConsoleApplication2.dll,名字與C里面相同
DllImport("ConsoleApplication2.dll",?CharSet:=CharSet.Auto,?CallingConvention:=CallingConvention.Cdecl)
Public?Function?Test(MarshalAs(UnmanagedType.LPTStr)?ByVal?str?As?StringBuilder)?As?MarshalAs(UnmanagedType.BStr)?String
End?Function
Sub?Main()
Dim?str?As?StringBuilder?=?New?StringBuilder("Hello")
Dim?rstr?As?String?=?Test(str)
Console.WriteLine(rstr)
Console.ReadKey()
End?Sub
End?Module
運行結(jié)果:
------------------------------------------00000000000000000000000000++++++++++++++++++
可以試試VBto Converter
VBto Converter是一款VB語言轉(zhuǎn)換軟件,它支持將MS Visual Basic資源文件(包括源代碼)轉(zhuǎn)換成MS VC++ MFC, VC++.NET (CLR), VBNET, C#, J#, Borland C++ Builder, Borland Delphi源文件。