我目前正在编写的应用程序存在一个奇怪的问题。我很确定我最近没有更改下面代码中的任何内容,但不知何故它停止了工作。 到了这一点。 我正在使用:
function addc(sel) {
alert(sel.options[sel.selectedIndex].text);
count=0;
var options = document.getElementById("select1").options;
for (var i=0; i < options.length; i++) {
if (options[i].selected) count++;
}
var tableRef =
document.getElementById('items').getElementsByTagName('tbody')[0];
var rowsAdd = tableRef.insertRow(tableRef.rows.length-1 ==
count);
var str = document.getElementById("select1").value;
strSplit = str.split(',');
// alert(idx);
qty = Math.random();
var newCell = rowsAdd.insertCell();
newCell.innerHTML="<tr class='item-row'><td class = 'item-
name'><input style='width: 210px;' form ='billsave' class= 'form-
control input-sm' type='text' id = 'feetype' name= 'feetype'
value='"+strSplit[0]+"' required> </td></tr>";
newCell = rowsAdd.insertCell();
newCell.innerHTML="<tr><td class = 'item-name'><input form
='billsave' class= 'form-control input-sm' style='width: 210px;'
type='text' id = '"+strSplit[1]+"' onblur =
calc("+strSplit[1]+","+qty+"),totalIt() name= 'charges'
value='"+strSplit[1]+"' required ></td></tr>";
newCell = rowsAdd.insertCell();
newCell.innerHTML="<tr class='item-row'><td><input form
='billsave' class= 'form-control input-sm' style='width: 200px;'
type='text' id = '"+qty+"' name= 'price' required ></td></tr>";
newCell = rowsAdd.insertCell();
newCell.innerHTML="<tr><td class=''><i class='fa fa-close'
style='font-size:20px' onclick='deleteRow(this)'></i></td></tr>";
}
导入 NetApi32.dll 。我需要物理路径。 无法使用WMI和WinRM。 然后我有枚举和结构如下:
[DllImport("NetApi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
public static extern uint NetShareGetInfo(
string servername,
string netname,
int level,
out IntPtr ppBuf
);
全部在
public enum ShType
{
DiskTree = 0,
PrintQ = 1,
Device = 2,
IPC = 3,
Temporary = 0x40000000,
Special = unchecked((int)0x80000000)
}
public struct SHARE_INFO_502
{
public string Name;
public ShType Type;
public string Remark;
public int Permissions;
public int MaxUses;
public int CurrentUses;
public string Path;
public string PassWd;
public int reserved;
public IntPtr SecDescriptor;
}
根据VS代码分析器分类。 我称之为:
[SuppressUnmanagedCodeSecurity]
public static class SafeNativeMethods
运行上面的代码后,我没有收到任何错误或例外,但是, siGet Struct只有每个属性值的第一个字母。 哪个可能是问题?
答案 0 :(得分:1)
默认字符集是Ansi
,这是结构编组使用的内容。但是您选择了Unicode版本的功能。您还应该为结构指定字符集:
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
public struct SHARE_INFO_502
....
编组文本时的一些提示: