我看过几乎每一个例子,我可以通过谷歌找到,并不能完成任务的最简单的创建一个dll
(窗口) 从nim
任何人都可以一步一步地解释它吗?
我正在使用nim
IDE - aporia
生成代码.
构建a是否dll
需要使用命令行?我想有一个解决方法.
使用aporia IDE
\ command line
,如何通过编译下面的代码来实现与以下代码相同的结果dll
:
extern "C" __declspec(dllexport) int __stdcall return_multiply(int num1, int num2)
{
return num1 * num2;
}
Run Code Online (Sandbox Code Playgroud)
您可能知道的代码可以从中调用 c#
我使用此代码将100万条记录插入数据库中的空表.好吧没有太多代码我将从我已经与数据交互的点开始,并将模式读入DataTable
:
所以:
DataTable returnedDtViaLocalDbV11 = DtSqlLocalDb.GetDtViaConName(strConnName, queryStr, strReturnedDtName);
Run Code Online (Sandbox Code Playgroud)
现在我们已经returnedDtViaLocalDbV11
创建了一个new DataTable
来成为源数据库表的克隆:
DataTable NewDtForBlkInsert = returnedDtViaLocalDbV11.Clone();
Stopwatch SwSqlMdfLocalDb11 = Stopwatch.StartNew();
NewDtForBlkInsert.BeginLoadData();
for (int i = 0; i < 1000000; i++)
{
NewDtForBlkInsert.LoadDataRow(new object[] { null, "NewShipperCompanyName"+i.ToString(), "NewShipperPhone" }, false);
}
NewDtForBlkInsert.EndLoadData();
DBRCL_SET.UpdateDBWithNewDtUsingSQLBulkCopy(NewDtForBlkInsert, tblClients._TblName, strConnName);
SwSqlMdfLocalDb11.Stop();
var ResSqlMdfLocalDbv11_0 = SwSqlMdfLocalDb11.ElapsedMilliseconds;
Run Code Online (Sandbox Code Playgroud)
此代码在5200ms内将 100万条记录填充到嵌入式SQL数据库(localDb)中.其余的代码只是实现了bulkCopy,但无论如何我都会发布它.
public string UpdateDBWithNewDtUsingSQLBulkCopy(DataTable TheLocalDtToPush, string TheOnlineSQLTableName, string WebConfigConName)
{
//Open a connection to the database.
using (SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings[WebConfigConName].ConnectionString))
{
connection.Open();
// Perform …
Run Code Online (Sandbox Code Playgroud) 来自c#i的interim nim dll可以调用并执行下面的代码
如果我将添加另一个函数(proc),调用GetPacks()
并尝试回显每个元素,buffer
我可以正确地看到C#控制台中的输出,但我无法按原样传输数据,我尝试了一切,但我无法完成任务
proc GetPacksPtrNim(parSze: int, PackArrINOUT: var DataPackArr){.stdcall,exportc,dynlib.} =
PackArrINOUT.newSeq(parSze)
var dummyStr = "abcdefghij"
for i, curDataPack in PackArrINOUT.mpairs:
dummyStr[9] = char(i + int8'0')
curDataPack = DataPack(buffer:dummyStr, intVal: uint32 i)
type
DataPackArr = seq[DataPack]
DataPack = object
buffer: string
intVal: uint32
Run Code Online (Sandbox Code Playgroud)
当我在c/c ++中执行相同操作时,我使用的类型是一个IntPtr
或者char*
很乐意包含返回的buffer
成员
EXPORT_API void __cdecl c_returnDataPack(unsigned int size, dataPack** DpArr)
{
unsigned int dumln, Index;dataPack* CurDp = {NULL};
char dummy[STRMAX];
*DpArr = (dataPack*)malloc( size * sizeof( dataPack …
Run Code Online (Sandbox Code Playgroud) 我正在通过使用参数化命令检查查询数据库的正确方法,并且仍然能够将与任何表匹配的查询作为通用SP.
这个sql sp似乎没有为SQL注入打开一个漏洞,如果我错了,请纠正我,这是安全的......
但问题是,使用sp_executesql
(似乎是安全的关键元素)不会返回SELECT结果.
我怎么能改变那个存储过程来返回值(而不是'破坏'它的安全性)
CREATE PROCEDURE [dbo].[SafeSqlSP_SelectGivenTableWithOptionalColFilter]
@columnList varchar(75) ='*',
@tableName sysname ,
@ColNameAsFilter1 varchar(75) ='',
@ColNameAsFilter2 varchar(75) ='',
@ColFilter1VAL varchar(75)='',
@ColFilter2VAL varchar(75)=''
AS
BEGIN
SET NOCOUNT ON;
DECLARE @sqlCommand nvarchar(1000)
if( @ColNameAsFilter2!='' AND @ColNameAsFilter1!='')
begin
SET @sqlCommand = 'SELECT ' + QUOTENAME(@columnList) + ' FROM ' + QUOTENAME(@tableName) +' WHERE ' + QUOTENAME(@ColNameAsFilter1) +' = @ColFilter1VAL AND ' + QUOTENAME(@ColNameAsFilter2) +' = @ColFilter2VAL'
EXECUTE sp_executesql @sqlCommand,
N'@ColFilter1VAL nvarchar(75), @ColFilter2VAL nvarchar(75)', @ColFilter1VAL= @ColFilter1VAL, @ColFilter2VAL = @ColFilter2VAL
end …
Run Code Online (Sandbox Code Playgroud) 我正在尝试实施升级的 Ajax.post
使用 javascriptFormData
我已将文件发布到专用控制器并成功将其保存到文件系统。
所以我有一个controller
- “UploadFiles”,标准使用“幕后”,Request.Files
我想你可能会说,它处理文件。
目标是:
发送/发布文件,(可能一个一个)这样我就可以估计每个文件并将 ETA 绘制给客户端。
到目前为止,这是我的 ajax(使用上述方法上传文件的标准)。
Log("AajaxNoPostBack preparing post-> " + targetUrl);
$.ajax({
type: 'POST',
url: targetUrl,
contentType: false,//two lines for posting a file i guess
processData: false,
data: FormDataobj,
success : function forsuccess(){
},
error : function forerr(){
}
});
Run Code Online (Sandbox Code Playgroud)
到目前为止它正在成功实施调用 MVC4 controller
[HttpPost]
public JsonResult UploadFiles()
{
HttpPostedFileBase hpf = Request.Files[file] as HttpPostedFileBase;
foreach (string file in Request.Files)
{
// Checking for Internet Explorer
if (Request.Browser.Browser.ToUpper() …
Run Code Online (Sandbox Code Playgroud) 以下代码旨在作为可重用对象的简单构造的简短示例.这是一个非常简单的,一个级别的深度对象,可以根据需要添加多个道具和方法,然后分配它们.
function someDesiredReusableType(optionally, pass, ctor, pars, here) {
//core obj to return
var DesiredTypeCrtor = {
propSkiingLocation: "canada",
OrderTickets: function(optionally){
var tryRoomWView = optionaly;
print(
"Dear " + ctor +", your request for " +
propSkiingLocation + " is now being processed: an " +
tryRoomWView + " request was notified, we understand you have " + pars + " for cross country transportation, confirmation email will be sent " + here + " as soon as we process your …
Run Code Online (Sandbox Code Playgroud) 我观看教程很多的,移动web-forms
和.master
VS MVC总体布局.
我的问题是关于嵌入式全局文件与单个页面自己的文件.
(files =样式和脚本)
在我的视图中的旁注我已经实现了一个小命名约定/规则,以便layouts-masters有一个LO
postfix,所以如果我的应用程序名为"SAdmin",那么我的布局(master)-chtml将命名为:_SAdminLO.cshtml
在我的布局大师我有:
(为简单起见)只是一个主栏 - 链接(这样所有页面都有"链接"顶栏)
这是主要的布局
[textlink1] | [textlink2] | [textlink3] | [textlink4] ....
Run Code Online (Sandbox Code Playgroud)
然后我有索引页面(它的名字是cpanel)
在我的索引中cpanel.chtml
我除了主要布局的文本栏之外还添加了图标...以图标菜单的形式复制顶栏
[IMG] [IMG]
page_name page_name
[IMG] [IMG]
page_name page_name
Run Code Online (Sandbox Code Playgroud)
所以一起Layout-master _SAdminLO.cshtml
+ cpanel.chtml
- 来自我的应用程序的"主页"
现在我的个人页面完全独立于他们的行动
但他们需要的是顶部栏的css + html,而不是cpanel
(索引)
所以我的情况是:在rightclick-> view-source中,我可以看到我的所有页面都有双html标签 -
<html> + <head> + <body> markup of `LO`
Run Code Online (Sandbox Code Playgroud)
&
<html> + <head> + <body> markup of `individual.cshtml `
Run Code Online (Sandbox Code Playgroud)
文件 :
-主-
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" …
Run Code Online (Sandbox Code Playgroud) 虽然我需要通过正确的设置启动驱动程序,但使用硒很容易
所以现在我只需要忽略缩放级别
我的代码是:
public string path = AppDomain.CurrentDomain.BaseDirectory;
public IWebDriver WebDriver;
var ieD = Path.Combine(path, "bin");
DesiredCapabilities caps = DesiredCapabilities.InternetExplorer();
caps.SetCapability("ignoreZoomSetting", true);
Run Code Online (Sandbox Code Playgroud)
现在我的当前代码只传递驱动程序的路径作为参数
WebDriver = new InternetExplorerDriver(ieD);
Run Code Online (Sandbox Code Playgroud)
我怎样才能正确传递能力和驱动程序路径?
通过这段代码:
var ciIL = CultureInfo.CreateSpecificCulture("he-IL");
var todayNow = DateTime.Now.ToString("g", ciIL );
Run Code Online (Sandbox Code Playgroud)
该DateTime
会在我的本地首选格式生成(04/07/2013 20:00
)
这就是我为日期/时间设置我的Windows本地化格式的方式,并且我真的希望它在SQL Server中设置(我目前使用的是2012 SP1)
因此,如果要求完全配置的SQL Server这样太复杂,我会解决一个方法需要设置每个新数据库..所以设置将是每个数据库
问题是当我以dd/mm/yyyy
格式设置日期时,它会被SQL翻译,因此在Management Studio中显示为2013-04-07 20:00
但它返回到ASP.NET C#代码: 07/04/2013 20:00
我希望数据库能够像我需要的那样使用转换方法来查询它
我在当前数据库中的排序规则设置为:Hebrew_100_CI_AS
并且服务器设置为:Hebrew_100_CI_AI
c# ×6
asp.net ×2
nim-lang ×2
sql-server ×2
.net ×1
ajax ×1
asp.net-mvc ×1
automation ×1
c ×1
database ×1
datetime ×1
dll ×1
dllimport ×1
ffi ×1
interop ×1
javascript ×1
jquery ×1
localdb ×1
marshalling ×1
master-pages ×1
nosql ×1
oop ×1
progress-bar ×1
selenium ×1
sql ×1